Cargando



Clases anidadas en Java

En este tutorial veremos cómo podemos hacer una clase anidada en nuestros programas escritos en Java.


oct 17 2014 02:50
Avanzado
oct 17 2014 16:16
Hay momentos en los cuales nuestra aplicación toma mayores dimensiones, tanto en tamaño como en complejidad, sobre todo si estamos trabajando de forma orientada a eventos, es por ello que en vez de construir clases por separado, podemos hacer clases anidadas.

Las clases anidadas nos permiten definir una clase dentro de otra, de esta forma se puede acceder a la información de la clase que la contiene, con ello podremos satisfacer requerimientos de forma más sencilla al no tener que construir estructuras independientes.

Clases anidadas
Una clase anidada es una clase definida dentro del ámbito o alcance de otra clase, es decir, está dentro de la clase que la va a contener, esto hace que en vez de tener que instanciar dentro de la clase interna un objeto de la clase externa para utilizar sus atributos y métodos podamos hacerlo directamente ya que está dentro de su alcance.


Debemos tener cuidado y no confundir esto con clases separadas dentro del mismo archivo ya que es un concepto totalmente diferente, en este caso hablamos de una clase dentro de otra y no de que comparten el archivo, veamos la diferencia entre ambas definiciones.

java_clases_anidadas.jpg


En la imagen vemos en la parte superior como las clases en el mismo archivo están una sobre otra, pero en la parte inferior vemos como la clase anidada está dentro de la definición de otra clase, esta diferencia parece evidente, sin embargo es bueno hacer la aclaratoria para evitar problemas a futuro.

Características de una clase anidada


1- Una clase anidada es compilada dentro de la clase que la contiene, esto genera un archivo .class con una combinación de nombres del estilo ClaseExterna$ClaseAnidada.class, si seguimos el ejemplo de la imagen el nombre sería Prueba$Anidada.class.

2- Una clase anidada puede utilizar y hacer referencia de los atributos y métodos de la clase que la contiene sin necesidad de hacer una instancia nueva, gracias a esto podemos simplificar un poco el contenido de nuestro programa, sobre todo al trabajar con orientación a eventos, veamos en la siguiente imagen como se expresa esto:

java_clases_anidadas2.jpg


3- La clase anidada puede ser afectada por modificadores de visibilidad y asumir sus características, además que también puede ser declarada como static, sin embargo si hacemos esto último solo podremos acceder a los métodos static de la clase que la contiene.

4- A pesar de ser clases anidadas estas pueden ser instancias por otras clases diferentes a las clases que las contienen, para ello se puede utilizar la siguiente forma:

ClaseExterna.ClaseAnidada objetoClaseAnidada = ObjetoClaseExterna.new ClaseAnidada();

En caso de que nuestra clase anidada sea del tipo static debemos entonces utilizar la siguiente forma:

ClaseExterna. ClaseAnidada objetoClaseAnidada = new ClaseExterna.ClaseAnidada ();

Con esto finalizamos este tutorial, hemos visto cómo podemos generar clases anidadas y la sintaxis asociada a esta característica del lenguaje, la utilidad de esta forma de trabajo es que podemos combinar clases dependientes en una sola gran clase, con ello reducimos la cantidad de archivos y también el código fuente, con esto logramos tener mayor control de nuestra aplicación y facilitamos la vida a nuestro equipo de desarrollo al tener todo lo relacionado en una misma clase.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X