Benutzer-Werkzeuge

Webseiten-Werkzeuge


glossar:geschachtelt_klasse

geschachtelt (Klasse)

engl.: nested class

Bedeutung

Eine Klasse heißt in Java geschachtelt (engl. nested), wenn sie innerhalb der Deklaration einer anderen Klasse deklariert ist:

  • als Komponente (ähnlich einem Attribut),
  • als lokale Klassen (ähnlich einer lokalen Variablen)
  • als anonyme Klassen bei der Objekterzeugung.

Ist eine Klasse nicht geschachtelt, nennen wir sie global (engl. top-level).

Java unterscheidet statische und innere Klassen.

Geschachtelte Klassen heißen statisch, wenn sie mit dem Modifikator static deklariert sind.

Statische Klasse haben die gleiche Bedeutung wie globale Klassen. Allerdings ergeben sich andere Sichtbarkeits- und Zugriffsbereiche.

  • Geschachtelte Klassen können als privat deklariert werden, so dass sie außerhalb der umfassenden Klasse nicht verwendet werden können.
  • Geschachtelte Klassen können auf private Attribute und Methoden der umfassenden Klasse zugreifen.

Geschachtelte Klasse, die nicht statisch sind, heißen innere Klassen.

Sei K eine Klasse und INN eine direkte innere Klasse von K. Dann bekommt jedes INN-Objekt eine Referenz auf das K-Objekt, in deren Kontext es erzeugt wurde.

Bemerkungen

  • Die Zugriffs- und Sichtbarkeitsregeln im Zusammenhang mit geschachtelten Klassen sind recht komplex.
  • Zugreifbare geschachtelte Klassen können über zusammengesetzte Namen außerhalb der umfassenden Klasse angesprochen werden (z.B. SLinkedList2.SEntry).
glossar/geschachtelt_klasse.txt · Zuletzt geändert: 2016/09/22 10:14 (Externe Bearbeitung)