¿Cómo implementar la clase interna en Java?



La clase interna en java significa una clase que es miembro de otra clase. Este artículo te ayudará a desentrañar esta clase.

La clase interna en java significa una clase que es miembro de otra clase. En , hay varios tipos de clases internas. Este artículo te ayudará a desentrañar todas estas clases. Los siguientes consejos se discutirán en detalle,

Así que comencemos con este artículo de Inner Class In Java,





Clase interna en Java

Clase interna anidada

Esta clase tiene acceso a cualquier valor de instancia privada de la clase externa. Escribir una clase dentro de otra clase también está permitido en Java. La clase escrita dentro se conoce como clase anidada y la clase que contiene la clase interna se conoce como clase externa.



Sintaxis

class outsideplace {class innerplace {}}

Ejemplo

En el ejemplo que se muestra a continuación, estamos haciendo que la clase interna sea privada y accedemos a la clase con la ayuda del método.



class Outer_place {int num private class Inner_place {public void print () {System.out.println ('Es una clase interna')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Outer_place outside = new Outer_place () outside.display_Inner ()}}

Salida

manejo de excepciones pl / sql

Salida - Clase interna en Java - Edureka

Aquí, el lugar externo es la clase externa y el lugar interno se llama clase interna.

Continuando con este artículo de Inner Class In Java,

Acceso a miembros privados

Las clases internas también se utilizan para acceder a los miembros privados de la clase. Supongamos que hay una clase que tiene miembros privados para acceder a ellos. Ahora escriba una clase interna dentro de la clase y acceda a los miembros privados desde un método dentro de la clase interna.

Aquí está el ejemplo,

class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('Es un método getnum de la clase interna:') return num}}} public class My_class {public static void main (String args []) {Outer_place externo = nuevo Outer_place () Outer_place.Inner_place inner = external.new Inner_place () System.out.println (inner.getNum ())}}

Salida

Hacia adelante,

Método de clases internas locales

En Java, puede escribir una clase dentro del método y eso se conocerá como tipo local. Como todas las variables locales, el alcance de la clase interna está restringido dentro de un método.

Ejemplo

El siguiente ejemplo mostrará cómo se implementa una clase interna local de método.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('método para clases internas' + num)}} MethodInner_place inner = nuevo MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outside = new Outerplace () outside.my_Method ()}}

Salida

Continuando con este artículo de Inner Class In Java,

Clase interna anónima

Cualquier clase interna que se declare sin el nombre de clase se llama clase interna anónima. En el caso de clases internas anónimas, lo instanciamos y lo declaramos al mismo tiempo.

Siempre que queramos anular el método de la clase o una interfaz, usamos esta clase.

Sintaxis

AnonymousInner obj1 = new AnonymousInner () {método vacío público () {}}

Ejemplo

abstract class AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('ejemplo de anónimo clase interna ')}} internal.mymethod ()}}

Salida

Continuando con este artículo de Inner Class In Java,

Como argumento de la clase interna anónima

En esto, si un método acepta el objeto de la interfaz, de una clase abstracta o la clase concreta, entonces podemos implementar la interfaz, pasar el objeto al método y extender la clase abstracta.

Sintaxis

obj. método (nueva clase () {public void do {}})

Ejemplo

// mensaje de interfaz de interfaz {String greet ()} public class My_class {// este método acepta el objeto del mensaje de interfaz public void displayMessage (Message m) {System.out.println (m.greet () + ', ejemplo de clase interna anónima como argumento ')} public static void main (String args []) {// Creación de instancias de la clase My_class obj = new My_class () // Pasando la clase interna anónima como argumento obj.displayMessage (new Message () {public String greet () {return 'Hey'}})}}

Salida

Continuando con este artículo de Inner Class In Java,

Clase interna anónima de una subclase específica

Código fuente

class Demo {void show () {System.out.println ('estaba en el método show de la clase')}} class Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('estuve presente en la clase Flavor1Demo')}} public static void main (String [] args) {d.show ()}}

Salida

ordenar una matriz c ++

Continuando con este artículo de Inner Class In Java,

Clase interna anónima como implementador de especificaciones Interfaz

Código fuente

class Flavor2Demo {// clase que implementa la interfaz Hello static Hola h = new Hello () {public void show () {System.out.println ('estuve presente en una clase anónima')}} public static void main (String [] args) {h.show ()}} interfaz Hola {void show ()}

Salida

Continuando con este artículo de Inner Class In Java,

Clases anidadas estáticas

Estas clases no se conocen técnicamente como clases internas. Estas clases son similares al miembro estático de la clase externa. Una clase anidada estática no tiene acceso a las variables y métodos de la clase externa. No necesitamos crear una instancia de la clase externa. Se puede acceder a ella directamente usando los miembros estáticos.

Sintaxis

Clase externa {Static class nested_example {}}

Ejemplo

public class Outer {static class Nested_Example {public void my_method () {System.out.println ('Es la clase anidada')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}

Salida

Así llegamos al final de este artículo. Si desea obtener más información,revisar la por Edureka, una empresa de aprendizaje en línea de confianza. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para capacitarlo en 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 artículo y nos comunicaremos con usted lo antes posible.