Nesneye yönelik tasarım sınıfım için bir ev ödevi üzerinde çalışıyorum ve Scala'nın eşlik eden nesnelerinde sorun yaşıyorum. Eşlik eden nesnelerin, arkadaşlık sınıfının özel yöntemlerine erişim sahibi olması gereken birkaç yerde okudum, ancak çalışmayı başaramıyorum. (Sadece bir not olarak, atamanın eti bir ikili arama ağacını uygulamakla ilgiliydi, bu yüzden sadece cevaplar istemiyorum ...)Scala'daki sınıf arkadaşı nesnesinde neden özel sınıf yöntemlerine erişemiyorum?
Bir örnek oluşturması gereken bir nesnem var. benim özel sınıf, BstAtlas (Bst da Atlas nesnesinde tanımlanır, netlik için çıkardı):
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
...
}
}
Ama derlemek gidince aşağıdaki hatayı alıyorum:
Question23.scala:15: error: method helpFocusRoom cannot be accessed in Atlas.Atlas a.helpFocusRoom(newRoom);
helpFocusRoom işlevinin gizlenmesi gerekiyor, ancak onu nasıl gizleyeceğimi bilmiyorum ve yine de ona erişebiliyorum tamamlayıcı nesnenin içinde.
Burada yanlış yaptığımı kimse söyleyebilir mi?
wow .. Bir "ödev" etiketi olduğunu hiç bilmiyordum – pavanred