Scala类的私有值在伴随对象中不可访问

Scala类的私有值在伴随对象中不可访问,scala,class,companion-object,Scala,Class,Companion Object,我有一个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) } 但是,它在客户端对象中抛出一个未找到的错误:value num_bits。有人能帮忙吗?你说得对。

我有一个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)
}

但是,它在客户端对象中抛出一个未找到的错误:value num_bits。有人能帮忙吗?

你说得对。伴随对象是一个单例对象,而类有多个实例。因此,您必须拥有该类的实例才能访问其字段-否则,对象中的
num\u 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)
}

如果要使用对象,就必须创建它。

我想,我找到了原因:我可能需要创建类的实例才能访问它的值。i、 e.我可以访问
num_bits
如下:
val bits=新客户端(454)。num_bits
如果我的理解有误,请纠正我。谢谢