2017-10-10 34 views
-1

我有一个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。有人可以帮忙吗?

+0

我想我找到了原因:我可能需要创建一个类的实例才能访问它的值。即我能够访问'num_bits',如下所示: 'val bits = new Client(454).num_bits' 如果我的理解错误,请更正我的错误。谢谢! –

回答

2

您可以使用它像这样:

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) 
} 

你,如果你想用它来创建对象。

1

你是对的。伴随对象是一个单例对象,而类有多个实例。因此,为了能够访问它的字段,你必须有一个类的实例 - 否则,该对象中的什么类的实例将被num_bits引用?

相关问题