Wie implementiere ich eine verschachtelte Klasse in Java?



Dieser Artikel über verschachtelte Klassen in Java hilft Ihnen zu verstehen, wie verschachtelte Klassen mithilfe eines Beispielprogramms implementiert werden.

In Java kann eine Klasse innerhalb einer anderen Klasse definiert werden, und solche Klassen werden als verschachtelte Klassen bezeichnet. Mit diesen Klassen können Sie Klassen, die nur an einer Stelle verwendet werden, logisch gruppieren. Dies erhöht die Verwendung der Kapselung und schafft einen besser lesbaren und wartbaren Code. In diesem Blog zu „Verschachtelte Klassen in Java“ erhalten Sie eine kurze Einführung in verschachtelte Klassen in der . Nachfolgend sind die Themen aufgeführt, die in diesem Blog behandelt werden:

Verschachtelte Klasse in Java

Das Klasse Innerhalb einer Klasse geschrieben wird als verschachtelte Klasse bezeichnet, während die Klasse, die die innere Klasse enthält, als äußere Klasse bezeichnet wird. Im Folgenden finden Sie einige Punkte, die Sie für verschachtelte Klassen in Java beachten sollten:





  • Der Bereich einer verschachtelten Klasse wird durch ihre einschließende Klasse begrenzt.
  • Eine verschachtelte Klasse hat Zugriff auf die Mitglieder der Klasse, in der sie verschachtelt ist. Die einschließende Klasse kann jedoch nicht auf die Mitglieder der verschachtelten Klasse zugreifen.
  • Eine verschachtelte Klasse ist ihr umschließendes Klassenmitglied.
  • Eine verschachtelte Klasse kann als öffentlich, privat, geschützt oder paketprivat deklariert werden.

Arten verschachtelter Klassen

Innere / nicht statische verschachtelte Klasse: In Java sind nicht statische Klassen ein Sicherheitsmechanismus. Eine Klasse kann nicht mit der verknüpft werden Zugriff bearbeiten privat, aber wenn Sie die Klasse als Mitglied einer anderen Klasse haben, kann die nicht statische Klasse privat gemacht werden.

Arten von inneren Klassen & Minus



  • Innere Klasse
  • Methodenlokale innere Klasse
  • Anonyme innere Klasse

Innere Klasse

Um eine innere Klasse zu erstellen, müssen Sie nur eine Klasse innerhalb einer Klasse schreiben. Eine innere Klasse kann privat sein, auf die von einem nicht zugegriffen werden kann Objekt außerhalb der Klasse. Unten finden Sie ein Programm zum Erstellen einer inneren Klasse. In diesem Beispiel wird die innere Klasse privat gemacht und über eine Methode auf die Klasse zugegriffen.

Klasse Outer_Test {int num // innere Klasse private Klasse Inner_Test {public void print () {System.out.println ('Dies ist unsere innere Klasse')}} // Zugriff auf die innere Klasse über die Methode void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} öffentliche Klasse My_class {public static void main (String args []) {// Instanziieren der äußeren Klasse Outer_Test Outer = new Outer_Test () // Zugriff auf die Methode display_Inner () . Outer.display_Inner ()}}

Ausgabe
Verschachtelte Klasse inner-Edureka

Methodenlokale innere Klasse

In Java kann eine Klasse innerhalb von a geschrieben werden und es ist ein lokaler Typ. Ähnlich wie bei lokalen Variablen ist der Umfang einer inneren Klasse innerhalb der Methode eingeschränkt. Eine methodenlokale innere Klasse ist nur in der Methode enthalten, in der die innere Klasse definiert ist. Das folgende Programm zeigt, wie eine methodenlokale innere Klasse verwendet wird.



public class Outerclass {// Instanzmethode der äußeren Klasse void my_Method () {int num = 1001 // methodenlokale Klasse der inneren Klasse StarInner_Test {public void print () {System.out.println ('Dies ist die innere Klasse des Sterns' + num)}} // Ende der inneren Klasse // Zugriff auf die innere Klasse StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass Outer = new Outerclass () Outer. my_Method ()}}

Ausgabe

Unterschied zwischen Überschreiben und Überladen in Java

Anonyme innere Klasse

Anonyme innere Klasse ist eine innere Klasse, die ohne Klassennamen deklariert ist. In einer anonymen inneren Klasse deklarieren und instanziieren wir es gleichzeitig. Sie werden im Allgemeinen verwendet, wenn Sie die Methode einer Klasse oder einer Schnittstelle überschreiben müssen. Das folgende Programm zeigt, wie eine anonyme innere Klasse verwendet wird -

abstrakte Klasse AnonymousInnerTest {public abstract void mytest ()} öffentliche Klasse Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('Dies ist ein Beispiel einer anonymen inneren Testklasse ')}} inner.mytest ()}}

Ausgabe-

Statisch verschachtelte Klasse: ZU ist eine verschachtelte Klasse, die ein statisches Mitglied der äußeren Klasse ist. Im Gegensatz zur inneren Klasse kann die statisch verschachtelte Klasse nicht auf Mitgliedsvariablen der äußeren Klasse zugreifen, da für die statisch verschachtelte Klasse keine Instanz der äußeren Klasse erforderlich ist. Daher gibt es bei OuterClass.this keinen Verweis auf die äußere Klasse. Die Syntax einer statisch verschachtelten Klasse lautet -

Klasse MyOuter {statische Klasse Nested_Test {}}

Beispiel für eine statisch verschachtelte Klasse

public class Outer {statische Klasse Nested_Test {public void my_method () {System.out.println ('Dies ist Edurekas verschachtelte Testklasse')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

Ausgabe

Voraussetzungen für einen Kurs über künstliche Intelligenz

Unterschied zwischen statischen und nicht statischen verschachtelten Klassen

Statisch verschachtelte Klassen haben keinen direkten Zugriff auf andere Mitglieder der einschließenden Klasse. Da es statisch ist, muss es über ein Objekt auf die nicht statischen Elemente seiner einschließenden Klasse zugreifen, was bedeutet, dass es nicht direkt auf die nicht statischen Elemente seiner einschließenden Klasse verweisen kann. Aufgrund dieser Einschränkung werden statisch verschachtelte Klassen selten verwendet.

Nicht statische verschachtelte Klassen haben Zugriff auf alle Mitglieder ihrer äußeren Klasse und können auf dieselbe Weise direkt auf sie verweisen wie andere nicht statische Mitglieder der äußeren Klasse.

Bevor wir zum Ende dieses Artikels kommen, wollen wir uns einige wichtige Punkte ansehen.

Wichtige Punkte, an die Sie sich erinnern sollten

  • Die innere Klasse wird als reguläres Mitglied einer Klasse behandelt.
  • Da die innere Klasse Mitglieder der äußeren Klasse ist, können Sie Ihrer inneren Klasse verschiedene Zugriffsmodifikatoren wie 'geschützt' und 'privat' zuweisen.
  • Da die verschachtelte Klasse Mitglied der einschließenden Klasse ist, können Sie sie verwenden. (Punkt-) Notation, um auf die verschachtelte Klasse und ihre Mitglieder zuzugreifen.
  • Durch die Verwendung einer verschachtelten Klasse wird Ihr Code besser lesbar und besser Verkapselung .
  • Die innere Klasse hat Zugriff auf andere Mitglieder der äußeren Klasse, auch wenn sie als privat deklariert sind.

Damit sind wir am Ende dieses Blogs über verschachtelte Klassen in Java angelangt. Wenn Sie mehr über Java erfahren möchten, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Blogs „Verschachtelte Klasse in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.