2017-10-10 63 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引用?

相關問題