1. 包的作用:命名空间控制,及访问控制
package com{
package horstmann{
class Employee{
def t1() = {
println("i am t1")
}
def t3() = {
new com.Employee().t2 // 可以访问上级的作用域
}
}
}
class Employee{
def t2() = {
println("i am t2")
}
}
}
object Test {
def main(args: Array[String]): Unit = {
new com.horstmann.Employee().t1
new com.Employee().t2 // 命名空间的控制, 同一个类可以有不同的访问路径
new com.horstmann.Employee().t3 // 内层作用域访问外层的作用域
}
}
2. 串联式包名
package com.horstmann{
//com 和 om.horstmann 成员不可见
class Employee{
def t1() = {
println("i am t1")
}
}
}
object Test {
def main(args: Array[String]): Unit = {
new com.horstmann.Employee().t1
}
}
3. 文件顶部标记
package com.horstmann
class Employee{
def t1() = {
println("i am t1")
}
}
object Test {
def main(args: Array[String]): Unit = {
new com.horstmann.Employee().t1
}
}
这样Employee 和Test 都在com.horstmann 下面
4. 包对象
package com.horstmann
package object Person{
val defaultName = "haha"// 定义变量和函数,方便Person用
}
package Person{
class Employee {
def t1() = {
println(defaultName)
}
}
}
object Test {
def main(args: Array[String]): Unit = {
new com.horstmann.Person.Employee().t1
}
}
5. 引入
import 引入需要的包, '_'用来通配,而且import 可以出现在任何地方