Zugriffsfunktion
Eine Zugriffsfunktion, auch Zugriffsmethode oder Akzessor, ist in der objektorienterten_Programmierung eine spezielle Methode, die eine einzelne Eigenschaft eines Objekts abfragt oder ändert.Die Zugriffsmethoden sind Teil der öffentlichen Schnittstelle eines Objekts und verbergen Implementierungsdetails dieses Objekts. Dadurch kann die Implementierung eines Objekts geändert werden, ohne seine öffentliche Schnittstelle zu ändern.
Abfragemethoden (Getter)
Eine Zugriffsmethode, die eine Eigenschaft eines Objekts abfragt, heißt auch Abfragemethode oder Getter (von englisch to get ? etwas holen). Die Eigenschaft kann entweder direkt aus einem Feld (einer Instanzvariablen) des Objekts entnommen oder im Moment des Aufrufs berechnet werden. Für den Aufrufer ist das nicht erkennbar, dadurch wird die Kapselung sichergestellt.
In einigen Programmiersprachen ist es üblich, die Namen aller Abfragemethoden mit
get beginnen zu lassen. So könnte z. B. eine Methode, die den Namen einer Person abfragt, getName heißen. In anderen Programmiersprachen ist dies verpönt und die Methode hieße einfach name.Änderungsmethoden (Setter)
Eine Zugriffsmethode, die eine Eigenschaft eines Objekts ändert, heißt auch Änderungsmethode oder Setter (von englisch to set - etwas einstellen). Ein Vorteil der Änderungsmethode besteht darin, dass sie vor der Änderung den Wert auf Gültigkeit prüfen kann. So könnte beispielsweise ein Objekt Person sicherstellen, dass als Name kein leerer Text übergeben wird. Falls ein ungültiger Wert übergeben wird, besteht eine mögliche Reaktion im ?Werfen? einer Ausnahme, wodurch der normale Programmablauf unterbrochen und ein Fehler signalisiert wird.
Ein weiterer Vorteil der Änderungsmethode besteht darin, dass sie eventuelle Beobachter (im Sinne des gleichnamigen Entwurfsmusters) über die Änderung des Objektzustands informieren kann. Dies wird beispielsweise in Model-View-Controller-Architekturen benutzt, um eine Sicht (View, z. B. ein Bildschirmformular) zu aktualisieren, wenn der Inhalt des zugrundeliegenden Modells (Model, z. B. ein Datensatz in einer Datenbanktabelle) geändert wurde.
In einigen Programmiersprachen ist es üblich, die Namen aller Änderungsmethoden mit
set beginnen zu lassen. So könnte z. B. eine Methode, die den Namen einer Person ändert, setName heißen. In anderen Programmiersprachen ist dieser Präfix verpönt und die Methode hieße einfach name.Java Beans
Java Beans, die Komponenten der Programmiersprache_Java, erkennen Zugriffsfunktionen zur Laufzeit per Reflection anhand ihrer Präfixe ?
get? und ?set?. Die eigens dafür bereitgestellte Klasse ?java.beans.Introspector? leitet daraus dann automatisch den Namen der abgefragten oder geänderten Eigenschaft ab, also beispielsweise ?saldo? aus ?getSaldo? oder ?geburtstag? aus ?setGeburtstag?.
