Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:archiv:m320:learningunits:lu01:theorie:lu1-kapitel_5 [2026/08/30 14:06] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | modul:archiv:m320:learningunits:lu01:theorie:lu1-kapitel_5 [2026/08/30 14:09] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 74.7.243.195 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | === 6. Konzept des data hiding === | ||
| + | Unter **data hiding** (Datenkapselung) versteht man den Zugriff auf die Attribute eines Objektes nur mittels Methoden und nie im Direktzugriff. [[https:// | ||
| + | Im UML-Diagramm werden daher die Attribute mit dem Modifikator << | ||
| + | {{modul: | ||
| + | //Abb 1.9:// private-Modifikator in UML\\ | ||
| + | Was bedeutet nun aber data hiding praktisch betrachtet? | ||
| + | |||
| + | Wir nehmen hier wieder unser Beispiel 1.1 der Türe. Gemäss UML-Diagramm sind alle Attribute '' | ||
| + | <code Python> | ||
| + | a_door_objekt.door_is_open = True | ||
| + | </ | ||
| + | ist somit nicht erlaubt. Wäre dem nicht so, könnte z.B. auch im Zustand '' | ||
| + | |||
| + | |||
| + | <code Python> | ||
| + | def lock_the_door(self): | ||
| + | """ | ||
| + | Methode für das verriegeln der Türe. | ||
| + | Das ist nur möglich, wenn die Türe nicht offen ist. | ||
| + | Für das verriegeln ist aber das Türschloss zuständig. Es weiss wie das geht. | ||
| + | """ | ||
| + | if self._door_is_open == False: | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Der Benutzer der Klasse '' | ||
| + | <code Python> | ||
| + | a_door_objekt.lock_the_door() | ||
| + | </ | ||
| + | |||
| + | === data hiding bei Python === | ||
| + | Attribute die im Klassendiagramm als '' | ||
| + | <code Python> | ||
| + | self._das_gekapselte_Attribut = initialWert | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Im Gegensatz zu anderen Programmiersprachen gibt es in Python keine echten **private** Attribute. | ||
| + | Mit der Schreibweise '' | ||
| + | Es wird aber nicht durch den Python-Interpreter verhindert, dass trotzdem auf solche Attribute zugegriffen wird. | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | [[https:// | ||