這裏是代碼和輸出:Scala伴侶對象與Vs. Scala的新對象類
//A scala class with a private variable and one method
class A {
private var a1 = "Zoom"
def A1(): Unit = {
println("A1 Class")
}
}
//A companion object
object A {
def A2(): Unit = {
println("A1 Obj")
val objA = new A
objA.A1()
println("a1 -> "+ objA.a1)
}
}
Output
======
A1 Obj
A1 Class
a1 -> Zoom
現在我的疑問是,如果我不想使用new操作符創建一個類的對象如何一個同伴對象將打印a1(私有變量)值並且還訪問A類的A1方法。我的意思是說,我想訪問都伴隨A類通過同伴對象A.成員
//A companion object
object A {
def A2(): Unit = {
println("A1 Obj")
A.A1() //It should print A1 Class
println("a1 -> "+ A.a1) //It should print Zoom
}
}
上面的代碼片段也應該可以正常工作,因爲在馬爾丁Odersky的書已經寫了類及其伴侶對象可以訪問對方的私人成員。
首先使用'var'和mutability不是使用Scala最常用的方式 – cchantep