Heim > Java > javaLernprogramm > Was sind die Hauptunterschiede zwischen statischen und nicht statischen verschachtelten Klassen in Java?

Was sind die Hauptunterschiede zwischen statischen und nicht statischen verschachtelten Klassen in Java?

Barbara Streisand
Freigeben: 2024-11-09 22:41:02
Original
680 Leute haben es durchsucht

What are the Key Differences between Static and Non-Static Nested Classes in Java?

Statische vs. nichtstatische verschachtelte Klassen in Java

Verschachtelte Klassen, auch als innere Klassen bezeichnet, bieten eine Möglichkeit, verwandte Klassen zu gruppieren innerhalb einer einzigen Quelldatei. Es gibt jedoch wesentliche Unterschiede zwischen statischen und nicht statischen verschachtelten Klassen.

Statische verschachtelte Klassen

Im Gegensatz zu nicht statischen verschachtelten Klassen haben statisch verschachtelte Klassen keinen Zugriff auf nicht statische Felder oder Methoden der umschließenden Klasse. Sie werden mit dem Schlüsselwort static innerhalb der umschließenden Klasse deklariert.

public class OuterClass {

    private int x;

    public static class StaticNestedClass {

        public void doSomething() {
            // Cannot access 'x' as it is non-static
        }
    }
}
Nach dem Login kopieren

Nichtstatische verschachtelte Klassen

Nichtstatische verschachtelte Klassen, auch innere Klassen genannt, haben Zugriff auf statische und nicht statische Mitglieder der umschließenden Klasse. Sie können direkt auf nicht statische Felder und Methoden sowie auf statische Mitglieder mithilfe der OuterClass.staticMember-Syntax zugreifen.

public class OuterClass {

    private int x;

    public class NonStaticNestedClass {

        public void doSomething() {
            System.out.println(x);
        }
    }
}
Nach dem Login kopieren

Hauptunterschiede

  • Instanzabhängigkeit: Statische verschachtelte Klassen hängen nicht von einer Instanz der umschließenden Klasse ab, während dies bei nicht statischen verschachtelten Klassen der Fall ist.
  • Zugriff auf umschließende Klasse: Auf statische verschachtelte Klassen kann nicht zugegriffen werden nicht statische Mitglieder der umschließenden Klasse, während nicht statische verschachtelte Klassen dies können.
  • Erstellung: Statische verschachtelte Klassen können erstellt werden, ohne eine Instanz der umschließenden Klasse zu erstellen, während sie nicht statisch sind Verschachtelte Klassen müssen innerhalb einer Instanz der umschließenden Klasse erstellt werden.

Beispielverwendung

  • Statische verschachtelte Klassen sind nützlich zum Definieren von Hilfs- oder Hilfsklassen die logisch mit der umschließenden Klasse verknüpft sind, aber keinen Zugriff auf ihre instanzspezifischen Daten benötigen.
  • Nicht statische verschachtelte Klassen eignen sich zum Definieren von Klassen, die eng mit der umschließenden Klasse interagieren und Zugriff auf diese haben müssen interner Zustand.

Das obige ist der detaillierte Inhalt vonWas sind die Hauptunterschiede zwischen statischen und nicht statischen verschachtelten Klassen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage