(Weitergeleitet von Sichtbarkeit)

Kapselung

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Der Zugriff auf Attribute und Methoden eines Objektes kann durch Kapselung eingeschränkt werden, um das Geheimnisprinzip / Information Hiding zu realisieren: Alle Details, die nicht zur konkreten Verwendung notwendig sind, sollen dem Nutzer (das ist i.d.R. ein anderes Objekt) verborgen bleiben.

Dabei können die Daten eines Objektes nur mit den Methoden des Objektes selbst gelesen und geschrieben werden. Nach außen hin sind die Attributwerte dann unsichtbar. Der direkte Zugriff auf die interne Datenstruktur wird unterbunden und erfolgt statt dessen über definierte Schnittstellen (Setter- und Getter-Methoden).

Die Kapselung dient der Realisierung auswechselbarer Komponenten. Das Gesamtsystem kann, wenn alles gut gekapselt ist, durch den Austausch von Komponenten aktualisiert werden.

Beispiel: Das Y2K-Problem war überall dort sehr einfach zu lösen, wo das Datum konsequent in ein Datumsobjekt gekapselt war. Man brauchte nur dieses Datumsobjekt aktualisieren, der Rest der Software igoriert die Implementationsdetails des Datums.

Sichtbarkeit

Schlüsselwort (Java) UML-Notation Wer kann zugreifen?
public + Jeder ─ der Zugriff ist nicht eingeschränkt und auch von außen möglich.
private - Nur für Objekte der gleichen Klasse ─ der Zugriff ist nur innerhalb der Klasse möglich.
protected # Wie private, zusätzlich ist auch den Objekten der Unterklassen der Zugriff erlaubt
(keines) ~ Wie public, aber nur innerhalb des eigenen Paketes. Dies ist der Standardwert in Java. In C# wird diese Sichtbarkeit mit dem Schlüsselwort internal gekennzeichnet, in C++ und VB mit friend.
static (unterstrichen) Das Element ist auch ohne Objekt sichtbar und zugreifbar (ein Klassenattribut oder eine Klassenmethode). Das Schlüsselwort static wird zusätzlich zu den anderen Sichtbarkeitsschlüsselwörtern notiert (dahinter).

Kapselung realisieren

  • Attribute stets private oder protected deklarieren
  • public Getter- und Setter-Methoden für alle nach außen sichtbaren Attribute erstellen
  • Auch für die rein intern verwendeten Attribute Getter- und Setter-Methoden erstellen (private oder protected), um den Datenzugriff zentral zu bündeln



Persönliche Werkzeuge