Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:modul:m320_2024:learningunits:lu02:datahiding [2026/09/11 13:17] – msuter | de:modul:m320_2024:learningunits:lu02:datahiding [2026/09/11 13:32] (aktuell) – [Wann verwende ich @property und @setter] msuter | ||
|---|---|---|---|
| Zeile 95: | Zeile 95: | ||
| Zunächst mal sollten **alle** Attribute als '' | Zunächst mal sollten **alle** Attribute als '' | ||
| Soll ein fremdes Objekt Lese- oder Schreibzugriff auf ein Attribut erhalten, schreiben wir eine entsprechende Property (Lesen) und/oder Setter (Schreiben). | Soll ein fremdes Objekt Lese- oder Schreibzugriff auf ein Attribut erhalten, schreiben wir eine entsprechende Property (Lesen) und/oder Setter (Schreiben). | ||
| + | |||
| + | ==== Entwerfen und Realisieren der Klasse ==== | ||
| + | Beim Entwerfen einer Klasse stelle ich mir ein paar Fragen: | ||
| + | * Dürfen fremde Objekte den Wert dieses Attributs lesen? => Ich erstelle eine Property. | ||
| + | * Dürfen fremde Objekte den Wert dieses Attributs verändern? => Ich erstelle einen Setter. | ||
| + | |||
| + | ==== Zugriff auf andere Objekte ==== | ||
| Wenn ich in einem Programm auf ein Objekt zugreife, studiere ich zunächst mal seine Attribute und Methoden. | Wenn ich in einem Programm auf ein Objekt zugreife, studiere ich zunächst mal seine Attribute und Methoden. | ||
| Dabei achte ich auf einige Punkte: | Dabei achte ich auf einige Punkte: | ||
| - | - Der Bezeichner des Attributs beginnt mit einem '' | + | - Der Bezeichner des Attributs beginnt mit einem '' |
| - Es gibt keine Property => Die Klasse möchte nicht, dass ich dieses Attribut lese. | - Es gibt keine Property => Die Klasse möchte nicht, dass ich dieses Attribut lese. | ||
| - Es gibt keinen Setter => Ich soll das Attribut nicht direkt verändern. | - Es gibt keinen Setter => Ich soll das Attribut nicht direkt verändern. | ||