Datenkapselung: Definition und Bedeutung

encapsulation

Die Datenkapselung (engl. encapsulation) ist ein wichtiges Konzept in der objektorientierten Programmierung. Hier erfährst Du alles, was Du wissen musst.

Datenkapselung ist ein Mechanismus, bei dem Daten und Methoden in einer Struktur zusammengefasst sind. Dabei wird die Implementierung des Objekts verborgen: Man kann auf die Daten nur über die festgelegten Zugriffsfunktionen zugreifen. Durch die Datenkapselung kann also die Integrität der im Objekt enthaltenen Daten gewährleistet werden. Um Daten vor einer unerwarteten Veränderung zu schützen, ist Datenkapselung also notwendig.

Datenmaskierung

In Java, wie auch in vielen anderen objektorientierten Programmiersprachen, gibt es für Klassen, Attribute und Methoden Zugänglichkeitsstufen, die angeben, wie auf diese Elemente zugegriffen werden kann.

Der Benutzer einer Klasse muss nicht unbedingt wissen, wie die Daten im Objekt strukturiert bzw. wie sie implementiert sind. Wenn der Benutzer Attribute nicht direkt ändern darf und definierte Funktionen verwenden muss, um Attribute zu ändern (Schnittstellen genannt), ist die Integrität der Daten sichergestellt. So kann beispielsweise sichergestellt werden, dass der Typ der gelieferten Daten erwartungskonform ist oder dass sich die Daten im erwarteten Intervall befinden.

Mit Datenkapselung kann man Sichtbarkeitsstufen (engl. visibilities) für die Elemente der Klasse festlegen. Diese Sichtbarkeitsstufen definieren die Zugriffsrechte auf die Daten, je nachdem, ob der Zugriff über eine Methode in der Klasse selbst, in einer Erbenklasse oder in einer beliebigen Klasse erfolgt. Es gibt vier Sichtbarkeitsstufen :

  • Standard: Es werden keine Sichtbarkeitsmodifikatoren angegeben.
  • Öffentlich (public): Funktionen aller Klassen können auf Daten oder Methoden einer Klasse zugreifen, die als „öffentlich“ definiert wurde. Dies ist die niedrigste Stufe des Datenschutzes.
  • Geschützt (protected): Der Zugriff auf die Daten ist den Funktionen der vererbenden Klassen vorbehalten, d. h. von den Member-Funktionen der Klasse und der Unterklassen. So ist ein als „protected“ deklariertes Attribut oder eine Methode nur für die Klassen eines Pakets und ihre Unterklassen zugänglich, auch wenn sie in einem anderen Paket definiert sind.
  • Privat (private): Der Zugriff auf die Daten ist auf die Methoden der Klasse selbst beschränkt. Dies ist die höchste Stufe des Datenschutzes.

Wie wird die Sichtbarkeitsstufe der verschiedenen Elemente einer Klasse gewählt?

Eigentlich besteht die Schwierigkeit also darin, die „richtige“ Sichtbarkeitsstufe der verschiedenen Elemente einer Klasse zu bestimmen. Generell sollte man immer versuchen, den Code so sicher wie möglich zu schützen und daher die kleinste Zugänglichkeitsstufe festzulegen. Anschließend musst Du Dich fragen, wie sensibel jedes Element ist und welche Auswirkungen jede Zugriffsebene auf ein Element auf den Rest der Klasse haben kann, wobei Du gleichzeitig die verschiedenen anderen Elemente identifizieren musst, die auf dieses Element zugreifen müssen, um zu funktionieren.

Weiterlesen

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!