1. La clasificación clase interna
2. Los miembros de la clase interna para comprender
Por una parte, como miembro de la clase externa:
> Llamada una estructura de clase externo
> puede ser modificación estática
> pueden ser modificados en cuatro permisos diferentes
Por otra parte, como una clase:
> Clase define las propiedades, métodos y otros constructores
> modificación final se puede expresar de este tipo puede no ser heredada. La implicación, no utilice final, que puede ser hereditaria
> abstracta puede ser modificado
características:
- Todas las propiedades y métodos miembros de la clase miembros dentro de acceso incondicional a la clase externa no es privado e influencia estática
- Cuando los miembros de la propiedad o método con el mismo nombre dentro de la clase y fuera de la clase, se produce fenómeno oculto. Llamar directamente dentro de la clase es una propiedades de miembro y métodos dentro de la clase. Necesidad miembro de .this "clase externa". Variable miembro / método
- Si necesita acceder a la clase interna de la clase externa, que necesita para generar los objetos internos, a objeto de la clase interna de acceso.
- Los miembros de la clase interna se une a la existencia de la clase externa, si necesita acceder a los miembros internos de la clase, a continuación, es necesario crear una clase externa.
-
A medida que los miembros de la existencia de la clase interna que los miembros de la clase externa, por lo que la clase puede ser modificado usando modificador de protección pública privada modificados ninguna autoridad para representar el problema del acceso a la interna. La lata interna y externa no.
pública clase de prueba { públicas estáticas void main (String [] args) { // crear un miembro estático dentro del objeto de clase Person.Inner2 Inner2 = nueva nueva Person.Inner2 (); // Crear un miembro no estática dentro de la clase de objeto Persona p = nuevo nuevo la Persona (); Person.Inner1 inner1 = P. nuevo nuevo inner1 (); inner1.show (); // name = Zhang, edad = 23 es inner2.show (); // miembro estático de la clase interna } } clase la Persona { String nombre; int Edad; // miembro de clase interna no estática clase{Inner1 pública vacío Show () { nombre = "Sally" ; Edad = 23 es ; System.out.println ( "name =" + nombre + "Edad =" + Edad); } } // miembro estático de la clase interna estática clase Inner2 { público vacío Show () { System.out.println ( "miembro de la clase interna estática" ); } } pública vacío comer () { System.out.println ( "comer" ); } }
3. Cómo llamar a una estructura externa de los miembros de la clase dentro de la clase?
clase de la Persona { String name = "Bob" ; pública vacío EAT () { } // elemento interno de clase no estática clase Aves { String name = "Rododendro" ; pública sin efecto la pantalla (String nombre) { System.out.println (nombre) ; // proceso en forma de parámetros de System.out.println ( el este .name); // atributo clase interna System.out.println (la persona. el este .name); // atributo de clase exterior // Person.this.eat (); } } }
4. clase interna local
características:
- No se puede utilizar palabras clave modificador de acceso
- intervalo de acción local en tan sólo declaró
Las clases internas anónimas
características:
- Clases internas anónimas no pueden utilizar el modificador static y los derechos
- Anónimo constructor sin interno. Mediante la generación de una nueva referencia de objeto a XXX.
- Clases internas anónimas que pertenecen a una clase interna local, todas las condiciones locales dentro similarmente restringidas interior siguen siendo válidas anónima
Autor: la belleza de Java
Fecha: 03/30/2020