1、 Scala也使用包来进行分工和代码的组织
2、Scala包的作用域是如果有括号,就是括号区域内,如果没有括号,是从定义开始的整个代码块。
3、因为在包中不可以定义成员和方法 所以可以将一些需要得成员和方法定义在包对象中 便于包的类可以访问
package com.dt.scala.oop
/*
* 包对象
* 作用:包中所有的类就可以访问包对象中所有的成员和方法
*/
package object people{
val defaultName = "Scala"
}
package people {
//val defaultName = "Scala" //包中不可以定义成员和方法
class people {
var name = defaultName //访问包对象中的成员和方法
}
}
import java.awt.{Color, Font}
//采用{}的方式来,引入包中的部分成员
import java.util.{HashMap=>JavaHashMap}
//解决scala和Java包命名的冲突,取别名JavaHashMap
import scala.{StringBuilder=>_}
//采用=>_ 占位符的方式屏蔽 这样就无法访问scala包下的StringBuilder
class PackageOps{}
//包的定义可以采用这种链式的定义方式,scala里的包可以嵌套
package spark.navigation {
abstract class Navigator {
def act
}
package tests{
//在这里可以做单元用例的测试
class NavigationSuite
}
package impl {
class Action extends Navigator {
//实现抽象类的抽象方法
def act = println("Action")
}
}
}
package hadoop{
package navigation {
class Navigation
}
package launch{
class Booster {
val nav = new navigation.Navigation
//通过包hadoop的访问范围,可以访问Navigation类
}
}
}
/**
* Scala包的隐式引用
*/
import java.lang._ //java.lang包的所有内容
//_表示导入包中的所有的内容 等价于Java中的import java.lang.*
import scala._ //scala包中所有的内容
import Predef._ //Predef对象中的所有的内容