9.1包
包的出现和Java中的包一样,是为了组织程序,
Scala中的包并不要求目录和包之间的关联关系。
定义一个类的包如下:
也支持在同一个文件为多个包贡献内容:
串联式包语句:
文件顶部标记法:这种形式中,一个文件中不能有多个不同包。
9.2作用域
包的作用域支持嵌套。包名是可以相对的。
如果遇到引用的类和scala内部类的有冲突,可以使用绝对包名(以root_开始):
注意:包对象名和包名要一致
9.3包对象
包可以包含类、对象、特质,但是不能包含函数和变量的定义,这个是Java虚拟机的限制。
为了解决这个问题,每个包都有一个包对象。可以在包对象中定义这些函数和常量等。
9.4包可见性
可以通过设定private设置包的可见性。
9.5引入
通过import进行包的引入,_类似于java中的*
注意:Scala中引入语句可以出现在任何地方,并不仅限于文件顶部。
9.6重命名和隐藏方法
通过包选取器选择单个类。