Zugriff auf die Attribute
Experimente mit Kartenhaufen-Objekten
Wir betrachten hier noch einmal die Simulation von Kartenhaufen.

Im letzten Abschnitt wurde eine Klasse Kartenhaufen
entwickelt, mit der man Softwareobjekte zur Simulation realer Kartenhaufen erzeugen kann.

Hier eine Implementierung zu dieser Klasse Kartenhaufen
in Python:
Wir verwenden jetzt die gezeigte Implementierung wie folgt:
Aufgabe 1
(a) Welcher reale Vorgang wird hier simuliert?
(b) Stimmt der angegebene Gesamtwert der Karten? Warum ist hier etwas schiefgelaufen?
Kapselung der Daten
Objekte nutzen Attribute, um die Daten, für die sie zuständig sind, zu verwalten. Ein leichtfertiger Zugriff auf die Attribute kann leicht zu unerwünschten Objektzuständen führen. Es ist daher eine gute Strategie, solche Zugriffe zu unterlassen oder sogar zu verbieten.
Wir setzen diese Strategie im Folgenden um, indem wir nicht mehr direkt auf Objektattribute zugreifen. Es sollen also keine direkten Zugriffe der Form objekt.attribut
mehr erfolgen.
Ein Zugriff auf die Daten eines Objekts soll ab jetzt nur noch mit Hilfe geeigneter Methoden durchgeführt werden. Damit das möglich wird, erweitern wir zuerst die Klassendeklaration.
Mit den hinzugefügten Methoden lässt sich der oben gezeigte Vorgang jetzt so simulieren:
Aufgabe 2
(a) Überzeuge dich, dass hier kein direkter Zugriff auf die Daten erfolgt. Auf welche Weise kann man sich dennoch die Daten verschaffen?
(b) Analysiere die Klassendeklaration. Welche Ergebnisse werden wohl an Stelle der Fragezeichen ausgegeben? Überprüfe deine Vermutung.
(c) Worin liegen die Vorteile, wenn nur die von einem Objekt bereitgestellten Methoden benutzt werden?