domingo, 16 de marzo de 2014

CLASES INTERNAS ESTANDARES

CLASES INTERNAS ESTANDARES

Esta situación se da cuando tenemos una clase no estatica definida en el interior de otra clase, como un miembro de la misma:

Class Externa{
   Class Interna{
}
.
.
.
}

Instanciación de la clase interna

Cuando se presenta un caso como este, la instaciacíón de la clase externa se realiza de la forma estándar. Sin embargo, para crear una instancia de la clase interna, dado que esta es un miembro no estatico de la externa, será necesario disponer previamente de una instanci a de la clase interna seguirá la siguiente sintaxis.

Externa .Interna  in  = ex.new  Interna

Clase Interna tiene acceso al reto de los miembros de la clase externa.



Utilización de this

Dentro de la clase, la palabra this hace referencia a la instancia en ejecución de la clase interna
Si desde el interior de la clase interna quiere hacerse referencia a la instancia de la clase externa deberá utilizarse la expresión:

Clase_externa .this


Ejemplo:


public class Externa {
   
    public void mostrarExterno(){
        System.out.println("objeto externo ");
       
    }
    class Interna{
       
        public void muestraInterno(){
               System.out.println("objeto interno ");
   
           
        }
       
        public void imprimir(){
            this.muestraInterno();
            Externa.this.mostrarExterno();
        }
       
    }
   
}// fin de la clase externa


public class Principal {
   
    public static void main(String[] args){
        Externa ex = new Externa();
        Externa.Interna in = ex.new Interna();
        in.imprimir();
    }
   
}

Modificadores para una Clase Interna

Una clase interna es un miembro mas de la clase, por tanto, en su definición se puede utilizar los siguientes modificadores:

Final, abstract, static, prívate, protected y public

Citado de el libro Programador Certificado de Java 2 Curso practico 2ª Edición.
Autor Antonio Martin Sierra






No hay comentarios:

Publicar un comentario