/**
* Scala的包与Java的包的作用类似
* 但是1.Scala的包路径与文件路径无关
* 2.Scala的包可以嵌套使用(不习惯使用,觉得乱)
* 3.Scala的每个包都可以有一个包对象
*/
packagecom {
packagelearn {
objectLearnStudy {
defprintlnLearn(): Unit = {
println("printlnLearn")
}
}
/**
* 包对象 ,包对象名与包名相同
*/
package objectstudy{
valSTUDYING ="studying";
valSTUDYED ="finish study"
}
packagestudy {
/**
* 在study包中使用兄弟包的类
* “_”通配符与Java的“*”一样表示引入该包下所有的类
* (*是Scala中的合法标识符)
*
* Scala的包引入比Java的花样多
*/
importutil._
/**
* 与Java一样导入指定的类
*/
importjava.util.List
/**
* 导入多个指定的类
*/
importjava.util.{ArrayList,LinkedList}
/**
* 重命名类,避免与其他包下相同名的类冲突
*/
importjava.util.{HashMap=>JavaHashMap}
importcollection.mutable.HashMap
/**
* 不引入java.io包下的File类,但引入java.io包下的其他所有类
*/
importjava.io.{File=>_,_}
classStudy{
valstudy =STUDYING
}
objectStudy {
defmain(args: Array[String]): Unit = {
/**
* 兄弟包中的类
*/
Util.printlnHello();
/**
* 父级包中的类
*/
LearnStudy.printlnLearn();
/**
* 直接使用包对象中的属性
*/
println(STUDYING)
/**
* 使用Java中的hashMap
*/
varmap =newJavaHashMap[String,Any]()
/**
* 使用scala的HashMap
*/
varhashMap = HashMap[String,Any]
}
}
}
/**
* 工具包
*/
packageutil {
objectUtil {
defprintlnHello(): Unit = {
println("hello world")
}
}
}
}
}