Benutzer-Werkzeuge

Webseiten-Werkzeuge


glossar:geschachtelt_klasse

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

glossar:geschachtelt_klasse [2014/09/24 16:43] (aktuell)
Zeile 1: Zeile 1:
 +====== 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: 2014/09/24 16:43 (Externe Bearbeitung)