4.7 Eingebettete Klassen (Nested Classes)
Nicht sehr häufig anzutreffen sind Klassen (oder ganz allgemein gesprochen »Typen«), die innerhalb anderer Klassen definiert sind. Diese Technik, die als Nested Classes oder auch als verschachtelte Klassen bezeichnet wird, kann im Einzelfall dazu benutzt werden, um entweder eine enge Beziehung zwischen zwei Typen zu beschreiben oder die innere Klasse vor dem Zugriff von außen zu schützen, weil sie nur innerhalb des Codes der äußeren Klasse sinnvoll ist.
Sehen wir uns an einem Beispiel die Codierung einer inneren Klasse an:
class Outer {
public class Inner {
[...]
}
}
Listing 4.28 Struktur einer inneren Klasse
Die innere Klasse Inner ist hier public deklariert und ermöglicht daher, von außerhalb der Klasse Outer ein Objekt zu erzeugen. Dabei erfolgt der Zugriff über die Angabe der äußeren Klasse, z. B.:
Outer.Inner @object = new Outer.Inner();
Wird die eingebettete Klasse jedoch private definiert, ist ihre Existenz nur im Kontext der umgebenden äußeren Klasse sinnvoll. Von außen kann dann kein Objekt der inneren Klasse mehr erzeugt werden.
Da Nested Classes nicht sehr häufig im .NET Framework auftreten, wollen wir hier auch nicht weiter in diese Programmiertechnik einsteigen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.