Paquete InnerClass; / ** * Características * 1: Mayor encapsulación, por la clase interna oculta dentro de la clase externa, de manera que otras clases no se puede acceder fuera de la clase. * 2: capacidad de mantenimiento mejorado. * 3: La clase interna puede acceder a los miembros externos. * @Author administrador * * / clase InnerClassDemo { string cadena = "fuera" ; estática str1: String = "estática" ; pública estática vacío outstaticStr () { System.out.println (); } pública vacío outStr () { StaticInner staticInner = nuevo nuevo StaticInner (); staticInner.staticStr (); cadena C = StaticInner.strInnerSt; Cadena InnerC = Inner.InnerStaticelements; System.out.println (STR); Interior Interior = nuevo nuevo interior (); System.out.println (inner.str); inner.innerStr (); } / ** * ejemplos de clases interna * @author Administrador * 1:. ejemplo de la clase de objeto interna es una clase interna, lo tratan como un objeto. No se puede usar la modificación estática * 2: Hay una referencia a una instancia de la parte exterior clase interna de la clase * 3: Ejemplos de miembros de la clase internos fuera de la clase se puede acceder a la referencia externa directamente el acceso con una clase externa .this tipo de miembro estático interno fuera de los miembros de la clase directamente. el acceso. * 4; clase externo para crear un objeto de una clase interna, a continuación, los miembros de acceso dentro de la clase. Los miembros estáticos de la clase interna directamente. Miembros. * 5: Estático ejemplo, miembro de la clase interna debe ser fianl * / público de clase{Interior cadena str = "interior" ; estática final Cadena InnerStaticelements = "staticInner" ; pública vacío innerStr () { InnerClassDemo.outstaticStr (); System.out.println ( el presente .str); . System.out.println (InnerClassDemo la presente .str ); } } / ** * * @author Administrador * más clase interna estática es clases internas estáticas * clase interna estática no hace referencia a un montón abierto un espacio para la ejecución de la clase externa. * Estático clases internas tienen acceso directo a los miembros fuera estático de la clase (clase no requiere miembros de la clase externos externos), el acceso a miembros de la clase no estáticos fuera de clase a través de nueva clase externa. * Clases internas estáticas pueden crear miembros no estáticos. * miembros de forma de clase externo accede por no estático miembro de acceso a objetos nueva clase interna clase interna estática a través de un miembro estático interno clase interna estática * / estática clase StaticInner { estática Cadena strInnerSt = "rewre" ; Cadena SRT = " staticInner " ; pública vacío staticStr () { System.out.println ( nueva nueva InnerClassDemo () STR.); System.out.println (cadena1); } } / ** * fijar pública privada las clases internas locales no pueden tener acceso como * método de definición de clase local interno, el método también * clase interna local puede no contener variables estáticas * mediante el acceso a un miembro externo, el miembro estático de la forma de realización, el nuevo general es utilizar un exterior de manera externa. * Clase externa no puede acceder a la clase miembro interno * / público nula showLocalInner () { clase LocalInner { Local Cadena = "localInner" ; públicos vacíos localMethods () { System.out.println (STR); } } System.out.println ( nueva nueva LocalInner () local.); LocalMethods (); } / ** * categoría general en el anonimato en el desarrollo de eventos, Android, desarrollo de interfaz gráfica de usuario, utilice solamente una vez. de manera miembro * no estático puede tener acceso a un miembro externo fuera de la clase de la nueva clase de realización, el miembro de la clase estática externa. miembro estática externa de Acceso * * / el Ejecutable RUN = nuevo el Ejecutable () { @ Override pública vacío run () { // método generado-Auto TODO stub System.out.println (str); } }; }
Paquete InnerClass; Importación innerClass.InnerClassDemo.Inner; pública clase TestInnerClass { pública estática vacío main (String [] args) { InnerClassDemo.Inner interior = nueva nueva InnerClassDemo (). Nuevo nuevo interior (); // Otros tipos de clases de acceso ejemplo de realización de la interna inner.innerStr (); System.out.println (InnerClassDemo.StaticInner.strInnerSt); // .. miembro estático interno dentro de los miembros de la clase de acceso interno de la clase de una clase externa externa } }