Krolli's Blog

Alles und noch viel mehr….

Zugriffsmodifizierer oder auch Sichtbarkeitsmodifizierer genannt

In der Java kennt man so genannte Zugriffsmodifizierer (engl. access modifier) über dieser werden die Rechte andere Objekte eingeschränkt (Kapselung). Fälschlicherweise wird auch die Bezeichnung Sichtbarkeitsmodifizierer (engl. visibility modifier) verwendet, dass ist aber eigentlich nicht ganz richtig. Das kommt daher weil der  Zugriffsmodifizierer den Zugriff auf einen Member verbieten, der Member ist bleibt jedoch sichtbar, z.B. über Reflection. Kennen sollte man diese Bezeichnung aber trotzdem das sie immer wieder verwendet wird.

Java kennt folgende Zugriffsmodifizierer:

Die Klasse selbst,
innere Klassen
Klassen im
selben Package
Unterklassen Sonstige
Klassen
privat Ja Nein Nein Nein
(default) Ja Ja Nein Nein
protected Ja Ja Ja Nein
public Ja Ja Ja Ja

(default)

Als (default) bezeichnet man die Zugreifbarkeit für den Fall, dass kein Zugriffsmodifizierer angegeben wurde. Auf einen package private Member können nur Klassen zugreifen, die sich im selben Paket wie die Klasse des Members befinden.

Der (default) Zugiffsmodifizierer wird dann eingesetzt, wenn eine Klasse innerhalb des selben Packages auf die Daten einer anderen Klasse Zugriff haben soll, aber diese Funktionalitäten nach außen nicht verfügbar gemacht werden sollen.


private

private ist der restriktivste Zugriffsmodifizierer. Er verbietet jeglichen Zugriff von außerhalb der Klasse auf den entsprechend modifizierten Member. Auf eine private Variable kann nur die Klasse selbst zugreifen, ebenso auf einen privaten Konstruktor, eine private Methode oder einen privaten geschachtelten Datentyp.

Klassenvariablen werden üblicherweise als private deklariert. Das Verändern der Variablen wird über passende Methoden, meist Getter und Setter ermöglicht. Allgemein werden sämtliche Member als private deklariert, auf das sich keine andere Klasse verlassen bzw. das von keiner anderen Klasse verwendet werden darf.


protected

Mit protected ist der Zugriff nicht nur auf Klassen in dem selben Package erlaubt, sondern auch den Subklassen erlaubt. Dies gilt auch, wenn die betreffenden Subklassen aus einem anderen Package sind als die Klasse des betreffenden Members. Der Zugriffsmodifizierer protected wird verwendet, wenn es nur für Subklassen Sinn hat, den betreffenden Member zu verwenden. Zu finden ist protected am meisten in der API-Programmierung.


public

Der Zugriffsmodifizierer public  gestattet sämtlichen Klassen Zugriff auf den betreffenden Member.  public findet man dabei hauptsächlich bei wichtigen Methoden, die von anderen Klassen verwendet werden sollen, bei Konstruktoren und bei Datentypen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert