Estoy trabajando en una tarea para la clase de diseño orientado a objetos, y estoy teniendo problemas con los objetos complementarios de Scala. He leído en algunos lugares que se supone que los objetos acompañantes tienen acceso a los métodos privados de su clase compañera, pero parece que no puedo hacer que funcione. (Solo como una nota, la parte fundamental de la tarea tenía que ver con la implementación de un árbol de búsqueda binario, así que no solo estoy pidiendo respuestas ...)¿Por qué no puedo acceder a los métodos de clase privados en el objeto complementario de la clase en Scala?
Tengo un objeto que se supone que crea una instancia de mi clase privada, BstAtlas (BST también se define en el objeto de Atlas, se llevó a cabo para mayor claridad):
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
...
}
}
Pero cuando voy a compilar, me sale el siguiente error:
Question23.scala:15: error: method helpFocusRoom cannot be accessed in Atlas.Atlas a.helpFocusRoom(newRoom);
el función helpFocusRoom debe estar oculto, pero no sé cómo ocultarlo y aún así tener acceso a él dentro del objeto compañero.
¿Alguien puede decirme qué estoy haciendo mal aquí?
wow .. Nunca supe que haya una etiqueta de "tarea" – pavanred