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,
- Classe interna annidata
- Metodo Classi interne locali
- Classi interne anonime
- Classi annidate statiche
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
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.