文件夹
我们在使用电脑时,为了更好的管理文件,会创建多个文件夹,比如:
- 学习资料
- 电影
- 游戏
package包
为了更好地组织类,scala 提供了包机制,用于区别类名的命名空间。
作用
防止命名冲突
当类很多时,把 功能相似 的类或接口 放同一个包中,方便类的查找和使用。就相当于图书馆、书店,给书分类分书架
控制访问范围
包的命名
命名规则
只能包含 字母、数字、下划线
但 不能用数字开头,也不要使用关键字
命名规范
一般是小写字母+小圆点.,域名倒写
com.公司名.项目名.业务模块名
例子:
com.taobao.order //淘宝,订单模块
edu.qinghua.student.clazz //清华,学生管理系统,班级管理模块
com.oracle.java.emp //oracle,java项目,员工管理模块
包的使用
方式一(类似java)
当类在某个包下,那么该类第一行必须写:
package 包名;
注意: scala包名 和 文件所在路径 不需要一致,这点与java不同
方式二(嵌套风格)
通过嵌套的风格表示层级关系,如下
package com{
package taobao{
package order{
}
}
}
特点:
一个源文件中可以声明多个 package包
子包中的类可以直接访问父包中的内容,而无需导包
嵌套风格
内部包的类访问外部类
package com {
object Outer {
var out: String = "out"
}
package taobao {
object Inner {
val in: String = "in"
def main(args: Array[String]): Unit = {
println(Outer.out) //子包访问父包无需导包
Outer.out="out2" //修改值
println(Outer.out)
}
}
}
}
外部类访问内部包的类
父包访问子包需要导包
package com {
//父包访问子包中的类需要导包
import com.taobao.Inner2
object Outer2 {
var out: String = "out"
def main(args: Array[String]): Unit = {
println(Inner2.in)
Inner2.in="out2" //修改值
println(Inner2.in)
}
}
package taobao {
object Inner2 {
var in: String = "in"
}
}
}