Java fornisce una funzione che ci consente di creare una classe all'interno di un'altra classe nota come classe nidificata o classe interiore e la classe che contiene la classe interna viene definita classe esterna. La classe interna può essere specificata allo stesso modo in cui specifichiamo qualsiasi altro attributo o metodo della classe.
In Java, non possiamo dichiarare/creare una classe con un modificatore di accesso privato in modo che la classe sia accessibile da qualsiasi altra classe dall'interno o dall'esterno del pacchetto. Tuttavia, per fornire sicurezza, dobbiamo creare lezioni private e, per farlo, possiamo creare lezioni interne con privato Modificatori di accesso.
Questo articolo fornirà una guida completa per le classi interne in Java e, a questo proposito, dobbiamo comprendere i seguenti concetti:
Iniziamo!
Qual è la classe interiore in java
Una classe che viene dichiarata/creata all'interno di qualche altra classe è nota come classe interiore. Può accedere a tutti gli attributi di classe e le funzioni dei membri della classe esterna. Le caratteristiche principali delle classi interne includono una sicurezza, leggibilità del codice e manutenibilità avanzate.
Sintassi
La sintassi di base della classe interna è descritta nel frammento di seguito:
Classe OuterclassCome creare e accedere alla classe interna in Java
La creazione di classe interiore è molto semplice, tutto ciò che dobbiamo fare è creare una classe all'interno di una classe. Per accedere alla classe interna, in primo luogo, dobbiamo creare un'istanza/oggetto della classe esterna e successivamente, possiamo creare l'oggetto della classe interna/nidificata.
Esempio
Lo snippet sopra mostra come funziona una classe interna in Java.
Come accedere agli attributi/metodi della classe esterna
La classe interna può accedere agli attributi di classe o alle funzioni del membro della classe esterna, il seguente esempio fornirà una migliore comprensione:
Esempio
Il frammento di codice di seguito è riportato Accesso al nome1 attributo della classe esterna dalla classe interna:
Classe OuterIl codice completo e il suo output sono mostrati nello snippet di seguito:
L'output autentica che la classe interna accede correttamente all'attributo di classe della classe esterna.
Classe interiore privata a Java
In Java, una classe normale non può essere creata con il privato Modificatore di accesso Tuttavia, è possibile creare una classe interna con l'accesso privato e gli oggetti al di fuori della classe non possono accedere alla classe interna privata.
Esempio
Se qualcuno cerca di accedere alla classe interna privata, Java lancerà un errore:
Classe OuterL'intero codice è lo stesso tranne il modificatore di accesso alla classe interna:
Lo snippet sopra verifica che una classe esterna non sia in grado di accedere alla classe interna.
Classe interna statica in java
Una classe interna può essere creata anche con il modificatore di accesso statico e il vantaggio della classe interna statica è che non è necessario creare l'oggetto del esterno classe per la creazione di oggetto di Classe interna statica.
L'istanza/oggetto della classe statica può essere creata utilizzando la seguente sintassi:
Classe esterno.Obj interni di classe = nuova classe esterna.InnerClass ();Esempio
Classe OuterIl codice completo e il rispettivo output andranno così:
UN statico La classe interna non è in grado di accedere agli attributi o ai metodi di classe della classe esterna:
Il frammento di codice sopra verifica che la classe interna statica non può accedere al membro della classe esterna.
Conclusione
In Java una classe può essere creata all'interno di un'altra classe indicata come classe interna e per creare prima una classe interna dobbiamo creare un'istanza/oggetto della classe esterna e quindi possiamo creare l'oggetto della classe interna. UN Classe interiore privata può anche essere creato in Java e non è possibile accedere dalla classe esterna. Inoltre, in a Classe interna statica, Non è necessario creare l'oggetto del esterno Classe per accedere alla classe statica interna e non può accedere ai membri della classe della classe esterna.