In Java, una classe può essere definita all'interno di un'altra classe e tali classi sono note come classi nidificate. Queste classi ti aiutano a raggruppare logicamente le classi che vengono utilizzate solo in un posto. Ciò aumenta l'uso dell'incapsulamento e crea un codice più leggibile e gestibile. Questo blog sulla 'Classe annidata in Java' ti fornirà una rapida introduzione alle classi annidate in . Di seguito sono riportati gli argomenti trattati in questo blog:
- Classe annidata in Java
- Tipi di classi annidate
- Differenza tra classi annidate statiche e non statiche
- Punti chiave da ricordare
Classe annidata in Java
Il classe scritta all'interno di una classe è chiamata classe annidata mentre la classe che contiene la classe interna è chiamata classe esterna. Di seguito sono riportati alcuni punti da ricordare per le classi nidificate in Java:
- L'ambito di una classe nidificata è delimitato dalla sua classe che lo racchiude.
- Una classe nidificata ha accesso ai membri della classe in cui è nidificata. Tuttavia, la classe che lo racchiude non può accedere ai membri della classe nidificata.
- Una classe annidata è il membro della classe che lo racchiude.
- Una classe nidificata può essere dichiarata pubblica, privata, protetta o privata del pacchetto.
Tipi di classi annidate
Classe nidificata interna / non statica: In Java, le classi non statiche sono un meccanismo di sicurezza. Una classe non può essere associata a accedere a modifica privata, ma se hai la classe come membro di un'altra classe, la classe non statica può essere resa privata.
Tipi di classi interne e meno
- Classe interna
- Classe interna metodo-locale
- Classe interna anonima
Classe interna
Per creare una classe interna è sufficiente scrivere una classe all'interno di una classe. Una classe interna può essere privata a cui non è possibile accedere da un file oggetto fuori dalla classe. Di seguito è riportato un programma per creare una classe interna. In questo esempio, la classe interna viene resa privata e si accede alla classe tramite un metodo.
class Outer_Test {int num // inner class private class Inner_Test {public void print () {System.out.println ('This is an Our inner class')}} // Accesso alla classe interna dal metodo void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Istanziazione della classe esterna Outer_Test outer = new Outer_Test () // Accesso al metodo display_Inner () . outer.display_Inner ()}}
Produzione
Classe interna metodo-locale
In Java, una classe può essere scritta all'interno di un file ed è un tipo locale. Analogamente alle variabili locali, l'ambito di una classe interna è limitato all'interno del metodo. Una classe interna locale al metodo è incorporata solo all'interno del metodo in cui è definita la classe interna. Il programma seguente mostra come utilizzare una classe interna locale al metodo.
public class Outerclass {// metodo di istanza della classe esterna void my_Method () {int num = 1001 // method-local classe interna della classe StarInner_Test {public void print () {System.out.println ('This is star inner class' + num)}} // fine della classe interna // Accesso alla classe interna StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass outer = new Outerclass () outer. my_Method ()}}
Produzione
configurazione di php su Windows
Classe interna anonima
La classe interna anonima è una classe interna dichiarata senza un nome di classe. In una classe interna anonima, la dichiariamo e la istanziamo allo stesso tempo. Vengono generalmente utilizzati quando è necessario sovrascrivere il metodo di una classe o di un'interfaccia. Il programma seguente mostra come utilizzare una classe interna anonima -
classe astratta 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 ('This is an esempio di classe di prova interna anonima ')}} inner.mytest ()}}
Produzione-
Classe annidata statica: PER è una classe nidificata che è un membro statico della classe esterna. A differenza della classe interna, la classe annidata statica non può accedere alle variabili membro della classe esterna perché la classe annidata statica non richiede un'istanza della classe esterna. Pertanto, non vi è alcun riferimento alla classe esterna con OuterClass.this. La sintassi di una classe annidata statica è:
class MyOuter {static class Nested_Test {}}
Esempio di classe annidata statica
public class Outer {static class Nested_Test {public void my_method () {System.out.println ('This is Edureka's nested test class')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}
Produzione
casting del tipo di dati in java
Differenza tra classi annidate statiche e non statiche
Le classi annidate statiche non hanno accesso diretto agli altri membri della classe che lo racchiude. Essendo statico, deve accedere ai membri non statici della sua classe che lo racchiude tramite un oggetto, il che significa che non può fare riferimento direttamente ai membri non statici della sua classe che lo racchiude. E a causa di questa restrizione, le classi annidate statiche vengono utilizzate raramente.
Le classi nidificate non statiche hanno accesso a tutti i membri della sua classe esterna e possono fare riferimento a loro direttamente nello stesso modo in cui lo fanno gli altri membri non statici della classe esterna.
Prima di arrivare alla fine di questo articolo, esaminiamo alcuni punti chiave.
Punti chiave da ricordare
- La classe interna viene trattata come un membro regolare di una classe.
- Poiché la classe interna è membri della classe esterna, puoi applicare diversi modificatori di accesso come protected, private alla tua classe interna.
- Poiché la classe Nested è un membro della sua classe che la racchiude, puoi usare. notazione (punto) per accedere alla classe annidata e ai suoi membri.
- L'utilizzo di una classe annidata rende il codice più leggibile e fornisce una migliore incapsulamento .
- La classe interna ha accesso ad altri membri della classe esterna, anche se sono dichiarati privati.
Con questo, arriviamo alla fine di questo blog sulle classi annidate in Java. Se desideri saperne di più su Java, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.
Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Nested Class in Java' e ti risponderemo il prima possibile.