15.2
Kapselung |
|
Information Hiding verlangt, dass eine Klasse selbst entscheidet,
Man spricht auch davon, dass eine
Klasse seine Attribute kapselt. Die Zugriffsrechte auf die Methoden
lassen sich, wie wir noch sehen werden, ebenfalls einschränken. |
|
Zugriff
|
Daten,
also die Attribute sind geschützt. Nur mit genau spezifizierten Methoden
können andere Objekte darauf zugreifen. Man
schafft dies dadurch, dass man die Attribute vor direktem lesendem und
schreibenden Zugriff von Außen abschottet. Man deklariert sie
private.
Falls man einen lesenden Zugriff auf ein Attribut 'a'
vom Typ 'A'
erlauben will, geschieht üblicherweise mit der Methode
geta()
die ein Ergebnis vom Typ A zurückgibt. Damit von Außen auf diese Methode
zugegriffen werden kann, schreiben wir vor ihrem Namen den Modifizierer
public. Entsprechendes
gilt für den schreibenden Zugriff, der über eine Methode
seta()
organisiert wird.
private A a; Zunächst gibt es zwischen dem globaleren Attribut a unserer Objektes und dem in der Parameterliste definierten a keine Konflikte. Das in der Parameterliste übergebene a hat seinen Gültigkeitsbereich innerhalb der Methode, überdeckt hier also das globalere a des Objektes. Ein Problem haben wir nun, wenn wir, wie in unserer seta(..)-Methode beabsichtigen, den übergebenen Wert in das Attribut des Objekts speichern zu wollen, also in der Methode beide as benutzen wollen. In a = a sind also zwei verschiedene as gemeint. Um diesen Konflikt zu lösen, verweisen wir auf das Objektattribut mit this. Die gelb unterlegte Zeile muss also zu this.a = a; korrigiert werden.
|
zu | 15.3 Die Klasse Punkt Version 2 |
zur Startseite | www.pohlig.de (C) MPohlig 2005 |