一、包
同一個包可以定義在多個文件中,你也可以在同一個文件中定義多個包
文件名為: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》