一、包
同一个包可以定义在多个文件中,你也可以在同一个文件中定义多个包
文件名为:pack.scala
package com{ package scala{ package test{ class pack { println("This is pack") } class pack1{ println("This is pack1") } } } }
在其他文件中可以引用该包的类
import com.scala.test.pack val p = new pack val p1 = new pack1
目录和包没有关联关系
二、作用域规则
使用绝对包名:new _root_.scala.collection.mutable.ArrayBuffer[Int]
三、串联式包语句
package com.scala.test{ }
com 和 com.scala 不可见
四、文件顶部标记法
顶部标记,不使用{}
package com.scala package test class pack{ println("This is pack") } class pack1{ println("This is pack1") }
com.scala的内容是可见的,com的内容是不可见的
五、包对象
package com.scala.test package object people{ val defaultName = "John" } package people{ class Persion{ var name = defaultName // 从包对象拿到的常量 } }
package object
六、包可见性
七、引入
import java.awt._
_和java中的*类似
八、任何地方都可以声明引入
import语句可以出现在任何地方
九、重命名和隐藏方法
想引入包中的几个成员,可以使用选取器{}
import java.awt.{color, font}
重命名=>
import java.util.{HashMap => JavaHashMap} // HashMap重命名为JavaHashMap import scala.collection.mutable._ // 后续使用HashMap对应scala.collection.mutable.hashmap
隐藏 =>_
import java.util.{HashMap =>_ , _} import scala.collection.mutable._
十、隐式引入
每个scala程序都默认引入如下包
import java.lang._ import scala._ import Predef._
参考《快学Scala》