Come implementare la classe interna in Java?



Classe interna in java significa una classe che è il membro di un'altra classe. Questo articolo ti aiuterà a svelare questa lezione.

Classe interna in java significa una classe che è il membro di un'altra classe. Nel , ci sono vari tipi di classi interne. Questo articolo ti aiuterà a svelare tutte queste classi. I seguenti suggerimenti saranno discussi in dettaglio,

Quindi iniziamo con questo articolo Inner Class In Java,





Classe interna in Java

Classe interna annidata

Questa classe ha accesso a qualsiasi valore di istanza privata della classe esterna. Anche la scrittura di una classe all'interno di un'altra classe è consentita in Java. La classe scritta all'interno è nota classe nidificata e la classe che contiene la classe interna è nota come classe esterna.



Sintassi

class outerplace {class innerplace {}}

Esempio

Nell'esempio riportato di seguito, rendiamo privata la classe interna e accediamo alla classe con l'aiuto del metodo.



class Outer_place {int num private class Inner_place {public void print () {System.out.println ('It is an inner class')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}

Produzione

Output - Classe interna in Java - Edureka

Qui, Luogo esterno è la classe esterna e Luogo interno è chiamato classe interna.

Andando avanti con questo articolo Inner Class In Java,

programma java per controllare palindromo

Accesso a membri privati

Le classi interne vengono utilizzate anche per accedere ai membri privati ​​della classe. Supponiamo che ci sia una classe con membri privati ​​per accedervi. Ora scrivi una classe interna all'interno della classe e accedi ai membri privati ​​da un metodo all'interno della classe interna.

Ecco l'esempio,

class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('It is a getnum method of inner class:') return num}}} public class My_class {public static void main (String args []) {Outer_place outer = new Outer_place () Outer_place.Inner_place inner = outer.new Inner_place () System.out.println (inner.getNum ())}}

Produzione

Andare avanti,

Metodo delle classi interne locali

In Java, puoi scrivere una classe all'interno del metodo e quella sarà nota come tipo locale. Come tutte le variabili locali, l'ambito della classe interna è limitato all'interno di un metodo.

Esempio

Il seguente esempio mostrerà come viene implementata una classe interna locale del metodo.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('method for inner classes' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outer = new Outerplace () outer.my_Method ()}}

Produzione

Andando avanti con questo articolo Inner Class In Java,

Classe interna anonima

Qualsiasi classe interna dichiarata senza il nome della classe è chiamata classe interna anonima. Nel caso di classi interne anonime, istanziamo e dichiariamo allo stesso tempo.

Ogni volta che vogliamo sovrascrivere il metodo della classe o un'interfaccia, usiamo questa classe.

Sintassi

AnonymousInner obj1 = new AnonymousInner () {public void method () {}}

Esempio

come terminare il programma in java
classe astratta 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 ('esempio di anonymous classe interna ')}} inner.mymethod ()}}

Produzione

Andando avanti con questo articolo Inner Class In Java,

Come argomento della classe interna anonima

In questo, se un metodo accetta l'oggetto dell'interfaccia, di una classe astratta o della classe concreta, allora siamo in grado di implementare l'interfaccia, passare l'oggetto al metodo ed estendere la classe astratta.

Sintassi

obj. metodo (nuova classe () {public void do {}})

Esempio

// interfaccia interfaccia Message {String greet ()} public class My_class {// oggetto dell'interfaccia messaggio è accettato da questo metodo public void displayMessage (Message m) {System.out.println (m.greet () + ', esempio di classe interna anonima come argomento ')} public static void main (String args []) {// Creazione di istanze della classe My_class obj = new My_class () // Passaggio della classe interna anonima come argomento obj.displayMessage (new Message () {public Stringa saluto () {return 'Hey'}})}}

Produzione

Andando avanti con questo articolo Inner Class In Java,

Classe interna anonima di una sottoclasse specificata

Codice sorgente

class Demo {void show () {System.out.println ('i was in show method of class')}} class Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('i was present in Flavor1Demo class')}} public static void main (String [] args) {d.show ()}}

Produzione

Andando avanti con questo articolo Inner Class In Java,

Classe interna anonima come implementatore di Specified Interfaccia

Codice sorgente

class Flavor2Demo {// classe che implementa l'interfaccia Hello statica Hello h = new Hello () {public void show () {System.out.println ('i was present in anonymous class')}} public static void main (String [] args) {h.show ()}} interfaccia Ciao {void show ()}

Produzione

Andando avanti con questo articolo Inner Class In Java,

Classi annidate statiche

Queste classi non sono tecnicamente note come classi interne. Queste classi sono simili al membro statico della classe esterna. Una classe annidata statica non ha accesso alle variabili e ai metodi della classe esterna. Non è necessario creare un'istanza della classe esterna, è possibile accedervi direttamente utilizzando i membri statici.

Sintassi

Classe esterna {Static class nested_example {}}

Esempio

public class Outer {static class Nested_Example {public void my_method () {System.out.println ('It is the nested class')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}

Produzione

Così siamo giunti alla fine di questo articolo. Se desideri saperne di più,controlla il da Edureka, una società di apprendimento online affidabile. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo articolo e ti risponderemo il prima possibile.