我正在爲面向對象的設計類做家庭作業,而且我遇到了Scala伴侶對象的麻煩。我已經在幾個地方讀到了伴侶對象應該可以訪問他們的伴侶類的私有方法,但我似乎無法讓它工作。 (就像一個筆記,作業的肉與實施二叉搜索樹,所以我不只是要求答案...)爲什麼我無法訪問Scala中類的伴侶對象中的私有類方法?
我有一個對象,應該創建一個實例我的私有類,BstAtlas(BST在阿特拉斯對象還定義了它的清晰度):
object Atlas {
def focusRoom(newRoom:Room,a:Atlas):Atlas = a.helpFocusRoom(newRoom);
abstract class Atlas {
...
protected def helpFocusRoom(n:Room):Atlas;
...
}
private class BstAtlas(bst:Bst) extends Atlas {
...
protected def helpFocusRoom(newRoom:Room):Atlas = ...
// uses some of bst's methods
...
}
}
但是,當我去編譯,我得到以下錯誤:
Question23.scala:15: error: method helpFocusRoom cannot be accessed in Atlas.Atlas a.helpFocusRoom(newRoom);
的函數helpFocusRoom需要隱藏,但我不知道如何隱藏它並仍然可以訪問它在伴侶對象的內部。
任何人都可以告訴我我在做什麼錯嗎?
哇..我從來不知道有一個「家庭作業」標籤 – pavanred 2010-10-28 18:31:42