私人价值是不是在同伴访问对象
问题描述:
我有一个Scala的类和它的同伴对象(Client.scala)如下:私人价值是不是在同伴访问对象
class Client(val key: Int) {
private val num_bits = 5
}
object Client {
val count_entries = Math.pow(2, num_bits).toInt
println(count_entries)
}
然而,在客户端抛出一个错误对象not found: value num_bits
。有人可以帮忙吗?
答
您可以使用它像这样:
class Client(val key: Int) {
private val num_bits = 5
}
object Client {
val count_entries = Math.pow(2, new Client(0).num_bits)
println(count_entries)
}
你,如果你想用它来创建对象。
答
你是对的。伴随对象是一个单例对象,而类有多个实例。因此,为了能够访问它的字段,你必须有一个类的实例 - 否则,该对象中的什么类的实例将被num_bits
引用?
我想我找到了原因:我可能需要创建一个类的实例才能访问它的值。即我能够访问'num_bits',如下所示: 'val bits = new Client(454).num_bits' 如果我的理解错误,请更正我的错误。谢谢! –