Come implementare la classe annidata in Java?



Questo articolo sulla classe nidificata in java ti aiuterà a capire come implementare classi nidificate con l'aiuto di un programma di esempio.

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

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 annidata: Edureka

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.