objects classes scala singleton

classes - self notation scala



¿Necesito importar miembros de un objeto singleton a su clase compañera en Scala? (3)

"Puede acceder a miembros privados" significa que los siguientes trabajos:

object Foo { private def bar = 4 } class Foo { def foo = Foo.bar }

El buen libro dice que:

Una clase y su objeto compañero pueden acceder a los miembros privados de cada uno.

Tal vez ingenuamente, tomé esto en el sentido de que una clase no necesitaba importar explícitamente los miembros de su objeto compañero. Es decir, lo siguiente funcionaría:

object Foo { def bar = 4 } class Foo { def foo = bar }

Bueno, la razón por la que estás leyendo esto es que no lo hace. Entonces, ¿realmente necesito declarar algo como esto?

class Foo { import Foo._ def foo = bar }


Sí (y quiero mis 15 puntos para eso!)

Pero para expandirse, sus ámbitos no se superponen, por lo que la importación es necesaria.


Sí, lo haces, tal como lo indicas. Hay acceso, y hay alcance, lo que tienen clase / objetos complementarios es acceso, no alcance.

Es como declarar algo público frente a privado: no lleva a esos miembros al alcance de todos, solo les da acceso a ellos.