8.Scala包和import
阿新 • • 發佈:2018-12-19
一.包
//包,平常我們還是想Java那樣去使用包
package scala{
class Cat{
def eat()={println("cat eat ...")}
}
}
二.訪問控制
-
無任何修飾符:任何地方都可以使用
-
private[scala]:在定義的類中可以訪問,在scala包及子包中可以訪問
-
private[this]:只能在定義的類中訪問,即使伴生物件也不能訪問團
-
private:在定義的的類及伴生物件中可以訪問,其它地方不能訪問
-
protected[scala]:在定義的類及子類中可以訪問,在scala包及子包中可以訪問
-
protected[this]:只能在定義的類及子類中訪問,即使伴生物件也不能訪問
-
protected:在定義的類及子類中訪問,伴生物件可以訪問,其它地方不能訪問
三.包物件
//包物件
//利用package關鍵字定義單例物件
package object Math{
val PI = 3.1415
val THETA = 2.0
val SIGMA = 1.9
}
class Compute{
def computeArea(r:Double) = Math.PI * r * r
}
四.import
//隱藏引入 import scala._ import Predef._ //重新命名 import java.util.{HashMap => JavaMap} import scala.collection.mutable.HashMap //類隱藏 //通過HashMap => _,隱藏起來 import java.util.{HashMap=>_,_} import scala.collection.mutable.HashMap
五.內部類
class OuterClass{
//即使定義為 private[this] var x:Int = 0,也可行
private var x:Int = 0
//def getInnerY = y //外部類不能訪問內部類的成員
class InnerClass{
private var y:Int = 0
//內部類可以直接訪問外部類的成員變數和成員方法
def getOuterX = x
}
}