Datenkapselung

Worin liegen nun die Vorteile der OOP? Die Grundgedanken sind Datenkapselung, Vererbung (Lektion B3) und Polymorphie (Lektion B4).

Die Datenkapselung beschreibt das Zusammenfassen mehrerer Daten (Eigenschaften) in einer Klasse. Des weiteren kann die Klasse auch den Zugriff auf diese Eigenschaften kontrollieren.

Arten der Zugriffsbeschränkung

Mit Hilfe der Schlüsselworte public, protected und private kann festgelegt werden, wer (d.h. welche Klassen und Objekte) auf die Eigenschaften und Methoden zugreifen darf. Wird keines dieser Worte deklariert, bezeichnet man die Zugriffsart als package-private.


  public class BeispielKlasse {

    public int wertA;
    protected int wertB;
    int wertC;
    private int wertD;

    public void setWertD(int neuerWert) {
      if (neuerWert > 0) {
        wertD = neuerWert;
      }
    }

    public int getWertD() {
      return wertD;
    }

  }

Schlüsselwort im Beispiel wer hat Zugriff
public wertA alle
protected wertB alle Klassen die davon erben
package wertC alle Klassen im selben Paket
private wertD nur die Klasse selbst

Die Methoden können mit den selben Schlüsselworten versehen werden. Diese haben dann die gleiche Bedeutung in Bezug auf die Ausführbarkeit der Methode.

Derartige Beschränkungen sind immer auf Klassenebene, d.h. zwei Instanzen der selben Klasse können gegenseitig auf ihre private-Eigenschaften zugreifen.

Gültigkeit der Werte

Eine Zugriffsbeschränkung ist immer sinnvoll, wenn an den Wert der Eigenschaft bestimmte Bedingungen geknüpft sind. (Im Beispiel muss wertD immer positiv sein. Eine andere Klasse hat keine Möglichkeit diese Gültigkeit zu verletzen.) Eine andere Möglichkeit besteht darin, dass von diesem Wert noch andere Werte abhängen. In diesen Fällen sollte man Methoden zum Setzen und Lesen des Wertes deklarieren. Die Methode zum Setzen eines neuen Wertes muss dann die Gültigkeit dieses Wertes prüfen un eventuelle Abhängigkeiten aktualisieren. Damit hat die Klasse volle Kontrolle über die Gültigkeit der Eigenschaften.


Erstellt von Markus Durzinsky, aktualisiert 2004-03-24
Für Fragen, Probleme oder Anregungen stehe ich gerne zur Verfügung