1. 面向对象
2. 包
2.1. 嵌套声明包
Scala有两种包的管理风格,其中一种方式和Java的包管理风格相同,还有一种是嵌套声明
package com{package atguigu{package scala{}}}
第二种风格有以下特点:
- 一个源文件中可以声明多个package
- 子包中的类可以直接访问父包中的内容,而无需导包
package com {import com.atguigu.Inner //父包访问子包需要导包object Outer {val out: String = "out"def main(args: Array[String]): Unit = {println(Inner.in)}}package atguigu {object Inner {val in: String = "in"def main(args: Array[String]): Unit = {println(Outer.out) //子包访问父包无需导包}}}}
2.2. 包对象
在Scala中可以为每个包定义一个同名的包对象,定义在包对象中的成员,作为其对应包下所有class和object的共享变量,可以被直接访问。
package object com{val shareValue="share"def shareMethod()={}}
嵌套方式管理包,则包对象可与包定义在同一文件中,但是要保证包对象与包声明在同一作用域中。
package com {object Outer {val out: String = "out"def main(args: Array[String]): Unit = {println(name)}}}package object com {val name: String = "com"}
2.3. 导包
| import com.atguigu.Fruit | 引入com.atguigu包下Fruit(class和object) |
|---|---|
| import com.atguigu._ | 引入com.atguigu下的所有成员 |
| import com.atguigu.Fruit._ | 引入Fruit(object)的所有成员 |
| import com.atguigu.{Fruit,Vegetable} | 引入com.atguigu下的Fruit和Vegetable |
| import com.atguigu.{Fruit=>Shuiguo} | 引入com.atguigu包下的Fruit并更名为Shuiguo |
| import com.atguigu.{Fruit=>Shuiguo,_} | 引入com.atguigu包下的所有成员,并将Fruit更名为Shuiguo |
| import com.atguigu.{Fruit=>,} | 引入com.atguigu包下屏蔽Fruit类 |
| new root.java.util.HashMap | 引入的Java的绝对路径 |
