<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Zugriffsfunktion</id>
	<title>Zugriffsfunktion - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Zugriffsfunktion"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Zugriffsfunktion&amp;action=history"/>
	<updated>2026-05-27T23:36:10Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Zugriffsfunktion&amp;diff=377514&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Zugriffsfunktion&amp;diff=377514&amp;oldid=prev"/>
		<updated>2025-06-13T18:10:52Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;Zugriffsfunktion&amp;#039;&amp;#039;&amp;#039;, auch &amp;#039;&amp;#039;&amp;#039;Zugriffsmethode&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Akzessor&amp;#039;&amp;#039;&amp;#039; oder im [[Programmiererjargon]] &amp;#039;&amp;#039;getter und setter&amp;#039;&amp;#039; genannt, ist in der [[Objektorientierte Programmierung|objektorientierten Programmierung]] eine spezielle [[Methode (Programmierung)|Methode]], die eine einzelne Eigenschaft ([[Attribut (Programmierung)|Attribut]]) eines Objekts abfragt oder ändert. Zugriffsfunktionen sind Teil der öffentlichen [[Schnittstelle (Objektorientierung)|Schnittstelle]] eines Objekts und verbergen [[Implementierung]]s&amp;lt;nowiki/&amp;gt;details dieses Objekts. Dadurch kann die Implementierung eines Objekts geändert werden, ohne seine öffentliche Schnittstelle zu ändern.&lt;br /&gt;
&lt;br /&gt;
== Abfragemethoden &amp;#039;&amp;#039;(Getter)&amp;#039;&amp;#039; ==&lt;br /&gt;
Eine Zugriffsmethode, die eine Eigenschaft eines Objekts abfragt, heißt auch Abfragemethode oder &amp;#039;&amp;#039;Getter&amp;#039;&amp;#039; (von {{enS|to get}} – etwas holen). Die Eigenschaft kann entweder direkt aus einem [[Attribut (Programmierung)|Objektattribut]] entnommen, das dann normalerweise eine geringere [[Zugriffsmodifikator|Sichtbarkeit]] hat, oder im Moment des Aufrufs berechnet werden. Für den Aufrufer ist das nicht erkennbar, dadurch wird die [[Datenkapselung (Programmierung)|Kapselung]] sichergestellt.&lt;br /&gt;
&lt;br /&gt;
In einigen [[Programmiersprache]]n ist es üblich, die Namen aller Abfragemethoden mit &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; beginnen zu lassen. So könnte z.&amp;amp;nbsp;B. eine Methode, die den Namen einer Person abfragt, &amp;lt;code&amp;gt;getName&amp;lt;/code&amp;gt; heißen. Alternativ können Methoden, welche [[Boolesche Algebra|Boolesche Werte]] abfragen, mit &amp;lt;code&amp;gt;is&amp;lt;/code&amp;gt; (z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;isMarried&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;has&amp;lt;/code&amp;gt; (z.&amp;amp;nbsp;B. &amp;lt;code&amp;gt;hasChild&amp;lt;/code&amp;gt;) beginnen.&lt;br /&gt;
&lt;br /&gt;
In anderen Programmiersprachen ist dies unüblich und die Methode hieße einfach &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, da bereits der Funktionsaufruf als solcher ein &amp;#039;&amp;#039;Holen&amp;#039;&amp;#039; in sich hat.&lt;br /&gt;
&lt;br /&gt;
== Änderungsmethoden &amp;#039;&amp;#039;(Setter)&amp;#039;&amp;#039; ==&lt;br /&gt;
Eine Zugriffsmethode, die ein Objektattribut ändert, heißt auch Änderungsmethode oder &amp;#039;&amp;#039;Setter&amp;#039;&amp;#039; (von {{enS|to set}} – etwas einstellen, setzen). Ein Vorteil der Änderungsmethode besteht darin, dass sie vor der Änderung den Wert auf Gültigkeit prüfen kann. So könnte beispielsweise in einem Objekt, das eine Person darstellt, die Funktion zum Setzen des Namens sicherstellen, dass als Name kein leerer Text übergeben wird. Falls ein ungültiger Wert übergeben wird, besteht eine mögliche Reaktion im Auslösen einer [[Ausnahmebehandlung|Ausnahmeroutine]], wodurch der normale Programmablauf unterbrochen und ein Fehler signalisiert wird.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer Vorteil der Änderungsmethode besteht darin, dass sie eventuelle Beobachter (im Sinne des gleichnamigen [[Beobachter (Entwurfsmuster)|Entwurfsmusters]]) über die Änderung des Objektzustands informieren kann. Dies wird beispielsweise in [[Model View Controller|Model-View-Controller]]-Architekturen benutzt, um eine Sicht (&amp;#039;&amp;#039;View&amp;#039;&amp;#039;, z.&amp;amp;nbsp;B. ein Bildschirmformular) zu aktualisieren, wenn der Inhalt des zugrundeliegenden Modells (&amp;#039;&amp;#039;Model&amp;#039;&amp;#039;, z.&amp;amp;nbsp;B. ein Datensatz in einer Datenbanktabelle) geändert wurde.&lt;br /&gt;
&lt;br /&gt;
In einigen Programmiersprachen ist es üblich, die Namen aller Änderungsmethoden mit &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt; beginnen zu lassen. So könnte z.&amp;amp;nbsp;B. eine Methode, die den Namen einer Person ändert, &amp;lt;code&amp;gt;setName&amp;lt;/code&amp;gt; heißen. In anderen Programmiersprachen ist dieses Präfix unüblich und die Methode hieße einfach &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, da bereits der parametrisierte Funktions-/Prozeduraufruf als solcher eine setzende Methode impliziert.&lt;br /&gt;
&lt;br /&gt;
== JavaBeans ==&lt;br /&gt;
[[JavaBeans]], die [[Komponente (Software)|Komponenten]] der [[Java (Programmiersprache)|Programmiersprache Java]], erkennen Zugriffsfunktionen zur Laufzeit per [[Reflexion (Programmierung)|Reflection]] anhand ihrer Präfixe &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt;. Die eigens dafür bereitgestellte Klasse &amp;lt;code&amp;gt;java.beans.Introspector&amp;lt;/code&amp;gt; leitet daraus dann automatisch den Namen der abgefragten oder geänderten Eigenschaft ab, also beispielsweise &amp;lt;code&amp;gt;saldo&amp;lt;/code&amp;gt; aus &amp;lt;code&amp;gt;getSaldo&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;geburtstag&amp;lt;/code&amp;gt; aus &amp;lt;code&amp;gt;setGeburtstag&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;{{Literatur |Hrsg=Graham Hamilton |Titel=Java Beans API specification |Verlag=[[Sun Microsystems]], Inc. |Datum=1997-08-08 |Seiten=54 |Kommentar=Version 1.01 |Online=[https://java.sun.com/products/javabeans/docs/spec.html online]}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kritik ==&lt;br /&gt;
[[Martin Fowler]] weist in seiner Beschreibung des [[Antimuster]]s [[Anämisches Objektmodell]] darauf hin, dass [[Objektmodell]]e, deren Objekte praktisch nur aus Zugriffsfunktionen bestehen und kein darüber hinausgehendes Verhalten anbieten, keine Vorteile gegenüber klassischen [[Datenbankmodell|Datenmodellen]] haben. Solche Objektmodelle sind daher nicht unbedingt sinnvoll.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Martin Fowler |titel=AnemicDomainModel |url=https://martinfowler.com/bliki/AnemicDomainModel.html |werk=MF Bliki |datum=2003-11-25 |zugriff=2009-03-25 |sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Objektorientierte Programmierung]]&lt;br /&gt;
[[Kategorie:Unterprogramm]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>