Estoy haciendo una instancia de un interior de clase, pero no puedo entender lo que quiere decir esto sintaxis.
OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
Sé que no puedo conseguir un objeto de una clase interna sin conseguir un objeto desde el exterior OuterClass outerObject = new OuterClass();
, entonces usamos el objeto de la clase externa outerObject para obtener una instancia de la clase interna outerObject.new InnerClass();
, por lo que lo hace OuterClass.InnerClass en realidad significa ya que no se explica en la documentación de Java, ya que afirma:
Para crear una instancia de una clase interna, debe crear una instancia de la clase externa primero. A continuación, crear el objeto interno dentro del objeto exterior con esta sintaxis OuterClass.InnerClass innerObject = outerObject.new InnerClass();
Este es el nombre de la clase, y es probable llama así de esta manera para que sea más fácil para el compilador para encontrar la definición.
Si declara la variable como acaba de ser de tipo InnerClass
, se buscará el archivo InnerClass.java
, pero no existe tal archivo.
La notación de puntos indica que en realidad es un miembro de OuterClass
, por lo que buscará la definición dentro del archivo OuterClass.java
.
Esto es lo mismo que el uso de una clase de una biblioteca,
com.example.MyLibrary.ExternalClass myExternalObject;