5.3.1 Getter und Setter
Es ist oftmals eine gute Lösung, wenn Eigenschaften nicht direkt gelesen oder geschrieben werden, sondern private
sind und der Zugriff nur über sogenannte Getter- und Setter-Methoden erfolgt. Denn dies hat folgende Vorteile:
- Bevor eine Eigenschaft einen Wert zugewiesen bekommt, kann man prüfen, dass der neue Wert keinen "Datenmüll" enthält und der Wert dem Wertebereich entspricht (es sich also um einen gültigen Wert handelt).
public
-Eigenschaften können von überall gelesen und geschrieben werden. Oftmals möchte man aber den "schreibenden Zugriff" nicht von überall zulassen. So kann es Eigenschaften geben, die über einen Getter immer lesbar sind, bei denen aber schreibende Änderungen an Bedingungen geknüpft sind.- Später werden wir auch sehen, dass es somit möglich ist, mit dem Beobachter-Pattern] die Information der Wertänderung einer Eigenschaft an andere Programmteile weiterzuleiten.
Im gezeigten Beispiel kann man die Matrikelnummer $matrNumber
zwar über getMatriculationNumber()
auslesen, aber nicht ändern. Die Telefonnummer $phoneNumber
hingegen kann man über die Methode getPhoneNumber()
auslesen und über setPhoneNumber()
auch ändern.
Anmerkung
Es gibt auch kritische Stimmen zur (umfangreichen) Verwendung von Gettern und Settern: