Suchen

Definition „Member Function (Programmierung)“ Was ist eine Methode in der OOP?

| Autor / Redakteur: Egoloizos / Stephan Augsten

Methoden stellen in der objektorientierten Programmierung bestimmte Operationen oder Unterprogramme dar, die als Funktionen das Verhalten der Objekte definieren. Die Methoden des Objekts bilden den Rahmen dafür, wie Objekte miteinander in Verbindung treten.

Firma zum Thema

Eine Methode bestimmt das Verhalten eines Objekts oder einer ganzen Klasse, auf unser Fahrrad-Beispiel bezogen beispielsweise das Beschleunigen oder Lenken.
Eine Methode bestimmt das Verhalten eines Objekts oder einer ganzen Klasse, auf unser Fahrrad-Beispiel bezogen beispielsweise das Beschleunigen oder Lenken.
(Bild: jonny_k / Unsplash)

Methoden sind in der Anwendungsentwicklung im Kontext der Objekte zu betrachten. Jedes Objekt beinhaltet grundsätzlich Attribute sowie Methoden. Methoden charakterisieren hierbei das gesamte Verhalten eines Objekts oder einer Klasse. Daher lassen sie sich auch als Funktionen verstehen.

Im englischsprachigen Raum sind Methoden daher auch als „member function“ bekannt. Da eine Methode letztlich das Verhalten von Objekten und Klassen bestimmt, spricht man im Deutschen synonym auch von Operationen.

Hingegen stellen Attribute lediglich Werte dar, die das statische Wesen des Objekts charakterisieren. Attribute können jeweils die Form von Konstanten oder Variablen annehmen. Methoden beinhalten den algorithmischen Inhalt des Objekts. Sie stellen in der objektorientierten Programmierung einen Teil der Definition einer Klasse dar.

Methoden im Kontext der objektorientierten Programmierung

Methoden können in der objektorientierten Programmierung entweder objekt- oder klassenbezogen sein. Methoden sind die Grundlage der Fähigkeiten einer Klasse sowie ihres Verhaltens. Konkrete Operationen wie beispielsweise Berechnungen lassen sich übersichtlich in einzelnen Methoden abbilden beziehungsweise darstellen.

Jede Methode verfügt über einen Rückgabewert. Optional verfügen Methoden auch über einen oder mehrere Eingabeparameter. Über letztere lassen sich einer Methode bestimmte Werte übergeben.

Aufruf der Methoden in der Programmierung

In der Festlegung oder Definition der Methode lassen sich formale Parameter festlegen. Mit einem oder mehreren solcher Parameter lässt sich eine Methode aufrufen. Ein solcher Parameter ist der Variablennamen. Er trägt auch die Bezeichnung Übergangswert. Ebenso existieren Methoden ohne solche Parameter.

Zahlreiche Programmiersprachen sehen zudem eine zusätzliche Deklaration der Datentypen der Variablen vor. Hierbei kann es sich um elementare Datentypen oder um Klassen handeln. Es kommt zum Ausführen der Methode, sobald diese über einen Methodennamen sowie passende Parameter angesteuert wird.

Die Ausführung der Anweisungen erfolgt von oben nach unten sowie von links nach rechts. Die Ausführung der Anweisungen erfolgt im Methodenrumpf mit den entsprechenden Übergabewerten. Die Signatur der Methode wird definiert durch den Namen, die Anzahl, die Art und die Reihenfolge der Datentypen der Parameter. Sofern vorhanden, trägt auch der Rückgabetyp zur Definition der Signatur der Methode bei.

Klassenmethoden lassen sich durch bestimmte Schlüsselworte deklarieren. Der Aufruf ist innerhalb sowie außerhalb der Klasse möglich. Ein Modifier definiert die Zugriffsregeln auf die Methode. In der Programmiersprache Java erfolgt die Deklaration der Klassenmethode durch das Schlüsselwort „static“. Mit dem Modifier „private“ wird nur der Zugriff von der eigenen Klasse auf die Methode gestattet. Der Modifier „public“ hingegen ermöglicht beliebigen anderen Klassen den Zugriff auf die Methode.

Es ist möglich, Methoden zusammen mit Übergabeparametern anzulegen. Diese in Klammern hinter dem Methodennamen stehenden Parameter sind beim Aufruf unmittelbar mit anzugeben. Hierbei wird der Rückgabewert der Methode in Java mittels return an den Aufruf zurückgeleitet.

Aufbau und Syntax einer Methode

Beim Aufbau der Methode gliedert sich der Quellcode in grundsätzlich zwei Einheiten. Diese nennen sich Methodenkopf und Methodenkörper (alternativ: Methodenkörper).

Im Methodenkopf lässt sich über den Zugriffsmodifikator regeln, wem der Zugriff auf die Methode gestattet ist. Anschließend ist anzugeben, ob die Methode eine Response (Antwort) an den Aufrufenden zurückgibt. Wenn dies zutrifft, ist der Datentyp der potenziellen Antwortwerte anzugeben. Erfolgt dies nicht, kann die Methode keine Antwort zurückgeben und es erscheint das Schlüsselwort „void“.

Anschließend erfolgt die Angabe des Namens der Methode. Dieser wird von einer sich öffnenden und einer sich schließenden runden Klammer gefolgt. Innerhalb dieser runden Klammern kann die Angabe eines oder mehrerer Parameter erfolgen, sofern die Methode solche Parameter erfordert.

Im Methodenkörper oder -rumpf sind die Anweisungen enthalten, die eine Methode ausführen soll. Der Methodenkörper ist durch zwei geschweifte Klammern begrenzt. Mit der Referenz „this“ ist es möglich, innerhalb der Methode auf dasjenige Objekt zu verweisen, zu dem die aufgerufene Methode gehört. Die Angabe ist in vielen Fällen verzichtbar und nur dann zwingend erforderlich, wenn der Zugriff auf ein bestimmtes Attribut vorgesehen ist und in der Methode noch ein weiterer Parameter mit dem gleichen Namen vorhanden ist.

Methoden und ihre Arten

Ähnlich wie Objekte und Klassen lassen sich auch Methoden oder Operationen in unterschiedliche Arten einteilen. Dazu gehören Operationen oder Objektoperationen. Diese werden auf einzelne und bereits existierende Objekte angewandt. Eine weitere Art von Methode ist die Konstruktionsoperation. Diese erzeugt ein neues Objekt. Weiterhin führt sie Initialisierungen wie Datenerfassungen durch.

Die Methodenart der Klassenoperation ist einer jeweiligen Klasse zugeordnet (und nicht dem einzelnen Objekt). Darin verhält sie sich ähnlich wie das Klassenattribut. Abstrakte Operationen sind ein weiterer Methodentyp, der sich durch eine nicht spezifizierte oder implementierte Signatur auszeichnet. Besitzt eine Klasse eine abstrakte Methode, wird sie im Ganzen zu einer abstrakten Klasse. Die genaue Spezifikation oder Implementation ist dann in der Unterklasse zu finden.

(ID:46883307)