Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Zugriffsmodifizierer

Wenn man im UML-Editor ein Attribut oder eine Methode entwirft, so kann man sich zwischen vier Zugriffsmodifizierern entscheiden, von denen hier aber nur drei verwendet werden: private, protected oder public. Damit legt man die Stärke der „Einschränkung“, wie auf die Attribute bzw. Methoden zugegriffen werden darf fest:

  • private : Nur von dieser Klasse aus

  • protected: Von allen abgeleiteten Klassen aus

  • public: Von überall.

Zugriffsmodifizierer im UML-Klassen-Editor

Lässt man den Zugriffsmodifizierer weg, so wird automatisch package angenommen. Das bedeutet, dass nur innerhalb des gleichen Pakets zugegriffen werden kann.

Vor allem für Attribute ist private in der OOP die erste Wahl, denn es soll ja möglichst das „Geheimhaltungs-Prinzip“ gelten: Was genau ein Objekt mit seinen Attributen anstellt, geht keinen etwas an. Mit der get- bzw.set-Methode (diese sind, wenn sie existieren immer public) kann man, falls vom Programmierer gewünscht, Informations- bzw. Änderungsrechte von außen bekommen.

Man beachte: Jede abgeleitete Klasse erbt auch die private Attribute der Oberklasse, kann aber ohne get- und set-Methode nicht darauf zugreifen. Aber selbst mit get- und set-Methode ist das arbeiten mit den ja immer vorhandenen Attributen sperrig und führt fast zwangsläufig zu Definition weiterer Attribute. Hier bietet sich, natürlich nur nach gründlicher Überlegung, die Verwendung des Zugriffsmodifizierers protected an. Zum besseren Verständnis eine Analogie:

Basisklasse sei CrtBildschirm. Abgeleitete Klasse CrtBildschirm100Hz.

Nun haben die Entwickler diesem 100 Hz-Fernseher eine Taste auf der Fernbedienung spendiert, mit der man das Bild für Filme optimieren kann. (Es werden dann bestimmte Werte für Helligkeit, Kontrast, Farbsättigung etc. eingestellt.)

Diese Methode „Bild optimieren“ hat die Basisklasse CrtBildschirm nicht.

Wären die Eigenschaften Helligkeit, Kontrast und Farbsättigung jetzt private, dann könnte die Methode „Bild optimieren“ (der abgeleiteten Klasse) diese Werten nicht direkt ändern und die Taste funktioniert nicht.

Für solche Fälle kann die Verwendung von protected sinnvoll sein, denn damit wird der Zugriff zu diesen Attributen nur den daraus abgeleiteten Klassen erlaubt.

 

 

Einführung: Herunterladen [odt][330 KB]

 

Weiter zu Polymorphie