Clase interior en Java | Explicado

Clase interior en Java | Explicado

Java proporciona una característica que nos permite crear una clase dentro de otra clase conocida como clase anidada o clase interior y la clase que posee la clase interna se conoce como una clase exterior. La clase interna se puede especificar de la misma manera que especificamos cualquier otro atributo o método de clase.

En Java, no podemos declarar/crear una clase con un modificador de acceso privado para que cualquier otra clase pueda acceder a la clase desde adentro o fuera del paquete. Sin embargo, para proporcionar seguridad, necesitamos crear clases privadas, y para hacerlo, podemos crear clases internas con privado Modificadores de acceso.

Este artículo proporcionará una guía completa para las clases internas en Java y, en este sentido, necesitamos comprender los siguientes conceptos:

  • ¿Qué es la clase interior en Java?
  • Sintaxis básica de la clase interior en Java
  • Cómo crear y acceder a la clase interior en Java
  • Cómo acceder a los atributos/métodos de la clase exterior
  • Clase interior privada en Java
  • Clase interior estática en Java

Empecemos!

¿Qué es la clase interior en Java?

Una clase que se declara/crea dentro de alguna otra clase se conoce como una clase interna. Puede acceder a todos los atributos de clase y funciones de miembros de la clase exterior. Las características principales de las clases internas incluyen seguridad mejorada, legibilidad de código y capacidad de mantenimiento.

Sintaxis

La sintaxis básica de la clase interna se describe en el fragmento dado a continuación:

clase externa
//Declaraciones
clase Innclass
//Declaraciones

Cómo crear y acceder a la clase interior en Java

La creación de clase interior es muy simple, todo lo que tenemos que hacer es crear una clase dentro de una clase. Para acceder a la clase interna, primero tenemos que crear una instancia/objeto de la clase exterior y después, podemos crear el objeto de la clase interna/anidada.

Ejemplo

El fragmento anterior muestra cómo funciona una clase interna en Java.

Cómo acceder a los atributos/métodos de la clase exterior

La clase interna puede acceder a los atributos de clase o las funciones de los miembros de la clase exterior, el siguiente ejemplo proporcionará una mejor comprensión:

Ejemplo

El fragmento de código dado a continuación accede al nombre1 Atributo de la clase exterior de la clase interna:

clase exterior
Name de cadena1 = "John";
clase interior
Nombre de cadena pública ()
nombre de retorno1;



Clase pública MainClass
public static void main (string [] args)
OBJ1 externo = nuevo externo ();
Exterior.Obj2 interno = obj1.nuevo interno ();
Sistema.afuera.println (obj2.nombre());

El código completo y su salida se muestran en el fragmento dado a continuación:

La salida autentica que la clase interna accede con éxito el atributo de clase de la clase exterior.

Clase interior privada en Java

En Java, no se puede crear una clase regular con el privado Modificador de acceso, sin embargo, se puede crear una clase interna con el acceso privado y los objetos fuera de la clase no pueden acceder a la clase interior privada.

Ejemplo

Si alguien intenta acceder a la clase interior privada, Java lanzará un error:

clase exterior
Name de cadena1 = "John";
clase privada interior
String name2 = "Micheal";


Clase pública MainClass
public static void main (string [] args)
OBJ1 externo = nuevo externo ();
Exterior.Obj2 interno = obj1.nuevo interno ();
Sistema.afuera.println (obj2.nombre2 + "" + obj1.nombre1);

Todo el código es el mismo excepto el modificador de acceso de clase interna:

El fragmento anterior verifica que una clase externa no puede acceder a la clase interior.

Clase interior estática en Java

También se puede crear una clase interna con el modificador de acceso estático y el beneficio de la clase interna estática es que no es necesario crear el objeto del exterior clase para la creación de objeto de clase interior estática.

La instancia/objeto de la clase estática se puede crear utilizando la siguiente sintaxis:

Clase exterior.INTERCLASS OBJ = nueva clase externa.InnerClass ();

Ejemplo

clase exterior
Name de cadena1 = "John";
clase estática interior
String name2 = "Micheal";


Clase pública MainClass
public static void main (string [] args)
Exterior.Obj2 interno = nuevo exterior.Interno();
Sistema.afuera.println (obj2.nombre2);

El código completo y la salida respectiva irán así:

A estático La clase interior no es capaz de acceder a los atributos o métodos de clase de la clase externa:

El fragmento de código anterior verifica que la clase interna estática no puede acceder al miembro de la clase exterior.

Conclusión

En Java se puede crear una clase dentro de otra clase denominada clase interna y para crear una clase interna primero tenemos que crear una instancia/objeto de la clase exterior y luego podemos crear el objeto de la clase interna. A clase interior privada También se puede crear en Java y no se puede acceder desde la clase exterior. Además, en un clase interior estática, No hay necesidad de crear el objeto del exterior clase para acceder a la clase estática interna y no puede acceder a los miembros de la clase de la clase exterior.