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,
- Clase interna anidada
- Método Clases internas locales
- Clases internas anónimas
- Clases anidadas estáticas
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
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.