¿Cómo implementar la clase anidada en Java?



Este artículo sobre clases anidadas en Java le ayudará a comprender cómo implementar clases anidadas con la ayuda de un programa de ejemplo.

En Java, una clase se puede definir dentro de otra clase y dichas clases se conocen como clases anidadas. Estas clases te ayudan a agrupar lógicamente las clases que solo se usan en un lugar. Esto aumenta el uso de encapsulación y crea un código más legible y fácil de mantener. Este blog sobre 'Clase anidada en Java' le dará una introducción rápida y directa a las clases anidadas en el . A continuación se muestran los temas cubiertos en este blog:

Clase anidada en Java

los clase escrito dentro de una clase se llama clase anidada, mientras que la clase que contiene la clase interior se llama clase exterior. A continuación se muestran algunos puntos para recordar para las clases anidadas en Java:





  • El alcance de una clase anidada está delimitado por su clase adjunta.
  • Una clase anidada tiene acceso a los miembros de la clase en la que está anidada. Pero la clase adjunta no puede acceder a los miembros de la clase anidada.
  • Una clase anidada es su miembro de clase adjunto.
  • Una clase anidada puede declararse pública, privada, protegida o privada de paquete.

Tipos de clases anidadas

Clase anidada interna / no estática: En Java, las clases no estáticas son un mecanismo de seguridad. Una clase no se puede asociar con el acceso editar privado, pero si tiene la clase como miembro de otra clase, entonces la clase no estática puede convertirse en privada.

Tipos de clases internas y menos



  • Clase interior
  • Clase interna de método local
  • Clase interna anónima

Clase interior

Para crear una clase interna, solo necesita escribir una clase dentro de una clase. Una clase interna puede ser privada a la que no se puede acceder desde un objeto fuera de la clase. A continuación se muestra un programa para crear una clase interna. En este ejemplo, la clase interna se hace privada y se accede a la clase a través de un método.

es java basado en c
class Outer_Test {int num // clase interna private class Inner_Test {public void print () {System.out.println ('Esta es nuestra clase interna')}} // Accediendo a la clase interna desde el método void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Creación de una instancia de la clase externa Outer_Test outside = new Outer_Test () // Accediendo al método display_Inner () . external.display_Inner ()}}

Salida
Clase anidada interior- Edureka

Clase interna de método local

En Java, una clase se puede escribir dentro de un y es de tipo local. De manera similar a las variables locales, el alcance de una clase interna está restringido dentro del método. Una clase interna local de método se incorpora solo dentro del método donde se define la clase interna. El siguiente programa muestra cómo usar una clase interna local de método.



public class Outerclass {// método de instancia de la clase externa void my_Method () {int num = 1001 // método local clase interna clase StarInner_Test {public void print () {System.out.println ('Esta es la clase interna estrella' + num)}} // fin de la clase interna // Accediendo a la clase interna StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass outside = new Outerclass () outside. my_Method ()}}

Salida

Clase interna anónima

La clase interna anónima es una clase interna declarada sin un nombre de clase. En una clase interna anónima, la declaramos e instanciamos al mismo tiempo. Por lo general, se utilizan cuando necesita anular el método de una clase o interfaz. El siguiente programa muestra cómo usar una clase interna anónima:

abstract class AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('Este es un ejemplo de clase de prueba interna anónima ')}} inner.mytest ()}}

Salida-

Clase anidada estática: A es una clase anidada que es un miembro estático de la clase externa. A diferencia de la clase interna, la clase anidada estática no puede acceder a las variables miembro de la clase externa porque la clase anidada estática no requiere una instancia de la clase externa. Por lo tanto, no hay ninguna referencia a la clase externa con OuterClass.this. La sintaxis de una clase anidada estática es:

class MyOuter {clase estática Nested_Test {}}

Ejemplo de clase anidada estática

public class Outer {clase estática Nested_Test {public void my_method () {System.out.println ('Esta es la clase de prueba anidada de Edureka')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

Salida

que es frame en java

Diferencia entre clases anidadas estáticas y no estáticas

Las clases anidadas estáticas no tienen acceso directo a otros miembros de la clase adjunta. Al ser estático, debe acceder a los miembros no estáticos de su clase envolvente a través de un objeto, lo que significa que no puede referirse directamente a los miembros no estáticos de su clase envolvente. Y debido a esta restricción, las clases anidadas estáticas rara vez se utilizan.

Las clases anidadas no estáticas tienen acceso a todos los miembros de su clase externa y pueden hacer referencia a ellos directamente de la misma manera que lo hacen otros miembros no estáticos de la clase externa.

Antes de llegar al final de este artículo, veamos algunos puntos clave.

Puntos clave para recordar

  • La clase interna se trata como un miembro regular de una clase.
  • Dado que la clase interna es miembro de la clase externa, puede aplicar diferentes modificadores de acceso como protegido, privado a su clase interna.
  • Dado que la clase Nested es miembro de su clase adjunta, puede usar. (punto) para acceder a la clase anidada y sus miembros.
  • El uso de una clase anidada hace que su código sea más legible y proporciona una mejor encapsulamiento .
  • La clase interna tiene acceso a otros miembros de la clase externa, incluso si se declaran privados.

Con esto, llegamos al final de este blog sobre clases anidadas en Java. Si desea obtener más información sobre Java, consulte la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog 'Clase anidada en Java' y nos comunicaremos con usted lo antes posible.