Zur Spezifizierung der Gültigkeitsbereiche von Klassen, Elementen und Methoden gibt es verschieden Speicherklassen.
Wird keine Speicherklasse ( private, protected, public) angegeben so sind die Elemente und Methoden nicht außerhalb des Paketes sichtbar.
protected Elemente und Methoden sind nicht sichtbar in Klassen aus anderen Paketen.
Um Klassen, Methoden oder Daten auch außerhalb des Paketes benutzen zu können, müssen sie als public deklariert werden.
Wir unterscheiden die Sichtbarkeit der Daten und Methoden in:
Situation | public | default | protected | private protected | private | |
---|---|---|---|---|---|---|
Vererbbar von Subklassen innerhalb des gleichen Pakets? | Ja | Ja | Ja | Ja | Nein | |
Vererbbar von Subklassen aus anderen Pakets? | Ja | Nein | Ja | Ja | Nein | |
Sichtbar von (Sub-) Klassen innerhalb des gleichen Pakets? | Ja | Ja | Ja | Nein | Nein | |
Sichtbar von (Sub-) Klassen aus anderen Pakets? | Ja | Nein | Nein | Nein | Nein |
Wenn die Daten alle mit protected oder private verdeckt werden, so spricht man von Datenkapselung.
Durch Datenkapselung wird der innere Aufbau einer Klasse verborgen (Black Box).
Die Werte von verdeckten Variablen werden über Funktionen angesprochen.