Classe interiore in Java | Spiegato

Classe interiore in Java | Spiegato

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:

  • Qual è la classe interiore in java
  • Sintassi di base della classe interna in Java
  • Come creare e accedere alla classe interna in Java
  • Come accedere agli attributi/metodi della classe esterna
  • Classe interiore privata a Java
  • Classe interna statica in java

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 Outerclass
// affermazioni
classe innerclass
// affermazioni

Come 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 Outer
String name1 = "John";
classe interiore
Public String Name ()
restituire nome1;



Classe pubblica Mainclass
public static void main (string [] args)
Outer obj1 = new esterno ();
Esterno.Obj2 interiore = obj1.nuovo interiore ();
Sistema.fuori.println (obj2.nome());

Il 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 Outer
String name1 = "John";
classe privata interiore
String name2 = "Micheal";


Classe pubblica Mainclass
public static void main (string [] args)
Outer obj1 = new esterno ();
Esterno.Obj2 interiore = obj1.nuovo interiore ();
Sistema.fuori.println (obj2.nome2 + "" + obj1.nome1);

L'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 Outer
String name1 = "John";
classe statica interna
String name2 = "Micheal";


Classe pubblica Mainclass
public static void main (string [] args)
Esterno.Obj2 interiore = nuovo esterno.Interno();
Sistema.fuori.println (obj2.nome2);

Il 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.