Methode (Programmierung)

Methode (Programmierung)

Der Begriff Methode (Eng. method oder member function, zu deutsch auch Mitgliedsfunktion) wird in der Programmierung allgemein als Sammelbegriff sowie auch synonym unter anderem für Funktionen und Prozeduren verwendet. Speziell in der objektorientierten Programmierung ist damit ein Konstrukt gemeint, welches das Verhalten von Objekten beschreibt.

Inhaltsverzeichnis

Einordnung

Das Kernstück jeder objektorientierten Überlegung bildet das Objekt. Allgemein kann man sagen, dass Objekte Attribute und Methoden enthalten. Dabei sind Attribute nur Variablen und Konstanten, die Werte aufnehmen können, und beschreiben damit das statische Wesen des Objektes. Im Gegensatz dazu gibt es die „Methoden“ die das gesamte dynamische Verhalten des Objektes oder einer Klasse von Objekten charakterisieren; sie enthalten die „algorithmische Essenz“ des Objektes bzw. ganzer Programme oder komplexere Softwarearchitekturen.

In den meisten Programmiersprachen wird zwischen Funktionen und Prozeduren unterschieden. Das ist in objektorientierten Sprachen (wie Java) nicht üblich.

Vergleich am Beispiel

Die Tabelle zeigt die eher imperative Sprache Pascal im Vergleich zur objektorientierten Sprache Java.

Pascal Java Bemerkung
Prozedur
procedure kopieren(eingabe:Integer);
begin
  ...
end;
public void kopieren(int eingabe){ 
  ...
}
  • Möglichkeit der „Eingabe“
  • kein Ergebnistyp im eigentlichen Sinn
  • fehlende Rückgabe durch Pseudo-Datentyp void (engl. "nichts") gekennzeichnet
Funktion
function rechnen(eingabe:Integer): String;
begin
  ...
end;
public int rechnen(int eingabe){
  ...
  return ...;
}
  • Möglichkeit der „Eingabe“
  • die Fixierung des Datentyps
  • Rückgabe oft durch ein return gekennzeichnet

Bei Pascal erkennt man sofort den Unterschied beider Konstrukte durch die unterschiedliche Syntax von procedure und function. Dieser Unterschied ist bei den Beispielen aus Java nicht mehr ohne Weiteres zu sehen. Das Hauptmerkmal bei Java ist der Pseudo-Datentyp "Void".

Synthese

Das Funktionsprinzip versteht sich in der Programmierung analog zur Mathematik. Man übergibt ihr etwas und sie rechnet etwas aus. Eine Prozedur ist hingegen ein Konstrukt, das es erlaubt eine bestimmte Aufgabe in wiederverwendbarer Art umzusetzen, das heißt sie berechnet kein Ergebnis, sondern führt vielmehr eine Aktion aus.

Wir stellen fest, dass bei beiden die Möglichkeit einer „Eingabe“ (bzw. Übergabe) von einem oder mehreren Objekten (=Prozedur) bzw. Argumenten (=Funktion) möglich ist. Den allgemeinen syntaktischen Regeln folgend, muss Anzahl und Typ der Argumente (sog. tatsächliche Parameter) natürlich exakt mit den vordefinierten Werten (sog. formale Parameter) übereinstimmen (siehe Parameter in der Informatik). Weiterhin liefern beide ein (und nur genau ein) „Ergebnis“, im umgangssprachlichen Sinn, wenn auch unterschiedlicher Art.

Wenn man beide Konstrukte nun einmal genauer vor dem Hintergrund der Objektorientierung vergleicht, kommt man zu dem Schluss, dass die Unterschiede so gering sind, dass man auch einfach sagen könnte, eine Prozedur sei eine „Funktion ohne Rückgabewert“ – oder kürzer, sei eine „void-Funktion“. Analog könnte eine Funktion eine „Prozedur mit konkretem Rückgabewert“ sein.

Und damit man sich bei diesen Charakterisierungen nicht im Kreis dreht, kann man beide Konstrukte unter dem Begriff der Methode zusammenfassen. Somit kann man dann folgende Eigenschaften einer Methode nennen:

  • einen Namen (Identifier), hier kopieren und rechnen
  • eine Liste (formaler) Parameter, hier jeweils ein Integer-Wert
  • ein Ergebnis (klassischer Ereignistyp/Rückgabewert oder void)

Differenzierung

Diese Synthese ist allerdings nur auf der abstrakten Ebene möglich. In der Praxis gibt es noch eine Vielzahl von Besonderheiten, die bei der Arbeit mit Methoden beachtet werden müssen.

  • Es gibt einige spezielle Arten von Methoden mit evtl. unterschiedlicher Syntax
  • Zugriffsmodifikatoren können das Verhalten von Methoden beeinflussen
  • Überladen kann eine Rolle spielen
  • die Übergabe von Objekten an Prozeduren erfolgt über die sogenannte Punktnotation

Konstruktormethoden

Hauptartikel: Konstruktoren und Destruktoren.

Konstruktoren sind spezielle Methoden ohne Ergebnistyp, deren Name mit dem Namen der Klasse übereinstimmt. Man muss also anfangen, Methoden in dem Kontext zu betrachten, in dem sie gebraucht werden bzw. definiert sind (sich befinden). Wie der Name vermuten lässt, dienen Konstruktoren dem „Erschaffen“ (Konstruieren) von Objekten nach einem gewissen Vorbild.

Weiterhin kann man zwischen impliziten (vorgegebenen) und expliziten (selbst erstellten) Konstruktoren unterscheiden.

Als Gegenstücke zu den Konstruktoren gibt es auch Destruktoren (genauer Finalisierungsmethoden).

„main“-Methode in Java

Das als main-Methode, engl. für Hauptmethode, hervorgehobene Konstrukt spielt dann eine Rolle, wenn aus einer Klasse eine eigenständig ausführbare Applikation werden soll, da diese Methode direkt von der Virtual Machine aufgerufen wird. Beispielsweise sorgt der Aufruf java Beispielklasse dafür, dass die Laufzeitumgebung versucht, in der Klasse Beispielklasse eine Methode mit Namen main, Rückgabetyp void und einem Stringarray als Parameter zu finden und auszuführen.

„main“-Methode in anderen Programmiersprachen

Zugriffsmethoden

Hauptartikel: Zugriffsfunktion

Die Zugriffsmethoden sind eigentlich normale Funktionen die einzelne Eigenschaften (Attribute) eines Objekts abfragen (get) oder ändern können (set). Es hat sich im Programmierstil der objektorientierten Programmierung eingebürgert entsprechende Methoden mit den Präfixen „get-“ bzw. „set-“ zu versehen. Insbesondere in Java werden diese Methoden auch getter und setter genannt. Dahingegen lauten bei Microsoft Visual FoxPro die Schlagwörter für dieses Konzept Access- und Assign-Methoden.[1]

Multimethoden

Hauptartikel: Multimethode

In einigen Sprachen gibt es sog. Multimethoden, welche gleichzeitig auf mehreren (Parameter-)Objekten operieren und daher in mehreren Parametern polymorph sein können.

Literatur

  • Laura Lemay und Charles L. Perkins, Java in 21 Tagen, 2000, ISBN 3-8272-5578-3
  • Katharina Morik und Volker Klingspor, Informatik kompakt: Eine grundlegende Einführung mit Java, Springer, 2006, ISBN 3-540-24304-6

Einzelnachweise

  1. http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx Access- und Assign-Methoden in Visual FoxPro

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Methode — steht für: Methode (Erkenntnistheorie), das systematisierte Verfahren zur Gewinnung von Erkenntnissen Methode (Programmierung), in der objektorientierten Programmierung ein ausführbarer Bestandteil einer Objektklasse Methode (Softwaretechnik),… …   Deutsch Wikipedia

  • Methode (objektorientierte Programmierung) — Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee der objektorientierten Programmierung ist, Daten und Funktionen, die auf diese Daten angewandt werden… …   Deutsch Wikipedia

  • Methode — Vorgehen; Technik; Herangehensweise; Art und Weise; Arbeitsweise; Verfahrensweise; Prozedur; Konzept; Prozedere; Verfahren; Betrachtungsweise; …   Universal-Lexikon

  • Methode (Softwaretechnik) — Als Methode – „wörtliche Bedeutung: Der Weg zu etwas“ (Duden [1]) – bezeichnet man in der Informatik und der Softwaretechnik eine „systematische zielgerichtete Vorgehensweise, sowie planmäßiges Verfahren, welches für eine Vielzahl von Problemen… …   Deutsch Wikipedia

  • Methode des kritischen Pfads — Die Methode des kritischen Pfades (auch Tätigkeits Pfeil Darstellung genannt; englisch critical path method, CPM) repräsentiert die Vorgangpfeil Netzpläne, als eine spezielle Netzplantechnik. Sie wurde 1956/57 vom amerikanischen Chemiekonzern… …   Deutsch Wikipedia

  • Methode des kritischen Pfades — Die Methode des kritischen Pfades (auch Tätigkeits Pfeil Darstellung genannt; englisch critical path method, CPM) repräsentiert die Vorgangpfeil Netzpläne, als eine spezielle Netzplantechnik. Sie wurde 1956/57 vom amerikanischen Chemiekonzern… …   Deutsch Wikipedia

  • Vererbung (objektorientierte Programmierung) — Vererbung dargestellt mittels UML. Die abgeleitete Klasse hat die Attribute x und y und verfügt über die Methoden a und b (im UML Sprachgebrauch Operationen a und b). Die Vererbung (engl. Inheritance) ist eines der grundlegenden Konzepte der… …   Deutsch Wikipedia

  • Schnittstelle (objektorientierte Programmierung) — In der objektorientierten Programmierung (OOP) vereinbaren Schnittstellen (engl. Interface) gemeinsame Signaturen von Methoden oder Funktionen, welche in unterschiedlichen Klassen implementiert werden. Die Schnittstelle gibt an, welche Methoden… …   Deutsch Wikipedia

  • Überschreiben (objektorientierte Programmierung) — Der Begriff Überschreiben (engl. override, wörtlich außer Kraft setzen, überwinden) beschreibt eine Technik in der objektorientierten Programmierung, die es einer Unterklasse erlaubt, eine eigene Implementierung einer von der Oberklasse geerbten… …   Deutsch Wikipedia

  • Generische Programmierung in Java 5.0 — Generische Programmierung wird in Java durch so genannte Generics ermöglicht. Der Begriff steht synonym für „parametrisierte Typen“. Die Idee dahinter ist zusätzliche Variablen für Typen, sog. Typ Variablen, einzuführen. Diese repräsentieren zum… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”