这里是代码和输出: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