Cómo crear una instancia de la clase de obras interiores?

snailp4el:

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 .newcomo nuevo su clase interna, entiendo que no es, pero no entiendo la sintaxis.

oleg.cherednik:

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 InnerClassno es un estático (es decir, tiene thisreferencia a un objeto de OuterClass) y la instancia de OuterClassdebe ser creado antes de ella.

OuterClass.InnerClass inerClass = new OuterClass.InnerClass();

Esto significa que InnerClasses un estático (es decir, no tiene thisreferencia a un objeto de Outerlass) y significa, esto es absolutamente la misma (desde la perspectiva JVM) como dos archivos separados con class OuterClassy class InnterClass.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=236024&siteId=1
Recomendado
Clasificación