Este artículo describe el mecanismo de creación y gancho de los objetos de clase interna Java. Compártelo para su referencia, como sigue:
Aunque las clases internas en Java son completamente independientes de sus clases periféricas en información estatal (puede realizar directamente sus funciones a través de instancias de clase internas), los objetos de clase periférica son la base de la existencia de objetos de clase internas.
Al generar objetos de clase interna, es necesario asegurarse de que puedan tener objetos de clase periférica para engancharse, de modo que Java proporciona una sintaxis estricta para generar objetos de clase interna.
Hay dos métodos que generalmente se utilizan para generar objetos de clase internos.
Método1: Método estándar usando instancia de clase periférica. Nuevo nombre de clase interna ().
Ejemplo 1:
clase pública externa {int no; Class Inner Implements Interfacea {}} Interface Interfacea {} main () {Outer Instancea = new Outer (); interfacea interfacea = instancea.new inner (); // presta atención al método de generar instancias de clase interna, nueva instancia de clase periférica. Nombre de clase interna (). El propósito de esto es garantizar que la instancia de clase interna debe tener una instancia de clase periférica gancho. InterfaceB de interfaces = instancea.newuter (); // Se genera otra instancia de la clase interna, y también se adjunta a la instancia Instancea. }Método2 : use el método de fábrica para devolver directamente un objeto que implementa una determinada interfaz (el objeto generalmente es una clase interna).
Ejemplo 1:
clase pública externa {int no; Class Inner Implements Interfacea {} Public Interfacea CreateInnerInstance {return interfacea {read (); }}} Interface Interfacea {public void read ();} main () {Outer Instancea = new Outer (); interfacea interfacea = instancea.createInnerInStance (); // Tenga en cuenta el método generado por la instancia de clase interna, directamente llame a un método de fábrica y devuelve un objeto que implementa la interfaz de interfacea. Interfacea interfaceB = instancea.createInnerInstance (); // Se genera una nueva instancia de la clase interna, y también se adjunta a la instancia de instancia. }En comparación con la forma de usar el nombre de la instancia .New Class Name (), el método de fábrica parece más elegante y claro.
! Presta atención al escenario de uso de las clases internas. En general, es devolver un objeto de clase interna que implementa una determinada función de interfaz en el exterior y luego realizar las operaciones correspondientes. (Dado que los miembros de la clase periférica son totalmente visibles para la clase interna, su conveniencia y ventajas son muy obvias)
Dado que el compilador captura automáticamente la información de instancia de clase periférica cuando se genera el objeto de clase interna, Java también proporciona un método para devolver las instancias de clase periférica (este método a veces es muy importante).
Ejemplo:
Public Class Outer {Class Inner {public Outer Callback () {return outer.THIS} // llameBack () El método devuelve una referencia al objeto de clase periférica del gancho de objeto de clase interna, utilizando el nombre de la clase periférica de sintaxis. }}Para obtener más contenido relacionado con Java, los lectores interesados en este sitio pueden ver los temas: "Introducción y tutorial avanzado sobre la programación orientada a objetos de Java", "Tutorial sobre la estructura de datos de Java y el algoritmo", "Resumen de la operación de Java DOM Node Node", "Summary of Java File and Directory Operation Skilly" y "Summary of Java Cache Skitch" Habilidades "
Espero que este artículo sea útil para la programación Java de todos.