Al crear una instancia de la clase interna, utilizo este código.
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass inerClass = outerClass.new InnerClass();
Pero no entiendo cómo outerClass.new InnerClass()
funciona, por qué usamos .new
como nuevo su clase interna, entiendo que no es, pero no entiendo la sintaxis.
Una clase interna es POJO. Por lo tanto, cuando se mira en el directorio de destino, se ve 2 (dos) archivos de clase. Por lo tanto, para crear una instancia de la clase interna que utiliza nueva.
OuterClass outerClass = new OuterClass(); // create instance
OuterClass.InnerClass inerClass = outerClass.new InnerClass(); // innerClass has `this` to outerClass instance
Esto significa que InnerClass
no es un estático (es decir, tiene this
referencia a un objeto de OuterClass
) y la instancia de OuterClass
debe ser creado antes de ella.
OuterClass.InnerClass inerClass = new OuterClass.InnerClass();
Esto significa que InnerClass
es un estático (es decir, no tiene this
referencia a un objeto de Outerlass
) y significa, esto es absolutamente la misma (desde la perspectiva JVM) como dos archivos separados con class OuterClass
y class InnterClass
.