<?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=Methode_%28Programmierung%29</id>
	<title>Methode (Programmierung) - 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=Methode_%28Programmierung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Methode_(Programmierung)&amp;action=history"/>
	<updated>2026-05-25T20:48:09Z</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=Methode_(Programmierung)&amp;diff=65753&amp;oldid=prev</id>
		<title>imported&gt;Antonsusi: gehört niht in Überschriften</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Methode_(Programmierung)&amp;diff=65753&amp;oldid=prev"/>
		<updated>2025-06-23T16:48:37Z</updated>

		<summary type="html">&lt;p&gt;gehört niht in Überschriften&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Methoden&amp;#039;&amp;#039;&amp;#039; ({{enS|&amp;#039;&amp;#039;method&amp;#039;&amp;#039;}} oder &amp;#039;&amp;#039;{{lang|en|member function}}&amp;#039;&amp;#039;) sind in der [[Objektorientierte Programmierung|objektorientierten Programmierung]] [[Unterprogramm]]e in der Form von [[Funktion (Programmierung)|Funktionen]] oder [[Prozedur (Programmierung)|Prozeduren]], die das Verhalten von [[Objekt (Programmierung)|Objekten]] beschreiben und [[Implementierung|implementieren]]. Über die Methoden des Objekts können Objekte untereinander in Verbindung treten.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Das Kernstück jeder [[Objektorientierte Programmierung|objektorientierten Programmierung]] bildet das [[Objekt (Programmierung)|Objekt]]. Allgemein kann man sagen, dass Objekte [[Attribut (Programmierung)|Attribute]] und Methoden enthalten. Dabei sind Attribute nur [[Variable (Programmierung)|Variablen]] und [[Konstante (Programmierung)|Konstanten]], die Werte aufnehmen können, und beschreiben damit das &amp;#039;&amp;#039;statische Wesen&amp;#039;&amp;#039; des Objektes. Im Gegensatz dazu gibt es die Methoden, die das gesamte &amp;#039;&amp;#039;dynamische Verhalten&amp;#039;&amp;#039; des Objektes oder einer [[Klasse (Objektorientierung)|Klasse]] charakterisieren. Sie enthalten die algorithmische Essenz des Objektes. In der objektorientierten Programmierung sind Methoden Teil der Definition einer Klasse.&lt;br /&gt;
&lt;br /&gt;
== Methodenaufruf ==&lt;br /&gt;
&lt;br /&gt;
In der Definition einer Methode können ein oder mehrere [[Formaler Parameter|formale Parameter]] festgelegt werden, mit denen die Methode aufgerufen werden kann. Es gibt auch Methoden ohne [[Parameter (Informatik)|Parameter]]. Ein formaler Parameter ist der Name einer Variablen und wird auch Übergabewert genannt. In vielen [[Programmiersprache|Programmiersprachen]] ist zusätzlich die [[Deklaration (Programmierung)|Deklaration]] der [[Datentyp|Datentypen]] dieser Variablen nötig. Diese Datentypen können [[Datentyp#Elementare Datentypen|elementare Datentypen]] oder [[Klasse (Objektorientierung)|Klassen]], also Objekttypen sein. Die Methode wird ausgeführt, wenn sie über den Methodennamen und passende [[Aktueller Parameter|aktuelle Parameter]] angesprochen wird. Die [[Anweisung (Programmierung)|Anweisungen]] im Methodenrumpf werden dann mit diesen Übergabewerten ausgeführt. Diese Anweisungen werden von oben nach unten und von links nach rechts ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Der Name der Methode sowie die Anzahl, Art und Reihenfolge der [[Zuweisungskompatibilität|zuweisungskompatiblen]] [[Datentyp|Datentypen]] der [[Parameter (Informatik)|Parameter]] und falls vorhanden der Rückgabetyp definieren die [[Signatur (Programmierung)|Signatur]] der Methode.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Das folgende Beispiel in der [[Programmiersprache]] [[C-Sharp|C#]] zeigt die Methoden &amp;lt;code&amp;gt;berechneEinnahmen(...)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gibPartei()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wähleVorsitzender(...)&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;gibAnzahlDerAbgeordneten(...)&amp;lt;/code&amp;gt;, die von den [[Klasse (Objektorientierung)|Klassen]] &amp;lt;code&amp;gt;Partei&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Abgeordneter&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Parlament&amp;lt;/code&amp;gt; definiert werden. Die [[Parameter (Informatik)|Parameter]] werden in den Klammern hinter dem Namen der Methode deklariert. Der [[Datentyp]] steht jeweils vor dem Namen der [[Variable (Programmierung)|Variablen]]. Der Rückgabetyp steht vor dem Namen der Methode. Bei Methoden ohne Rückgabewert wird der Rückgabetyp &amp;lt;code&amp;gt;void&amp;lt;/code&amp;gt; angegeben.&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
class Partei&lt;br /&gt;
{&lt;br /&gt;
    List&amp;lt;Person&amp;gt; mitglieder;&lt;br /&gt;
    double mitgliedsbeitrag;&lt;br /&gt;
&lt;br /&gt;
    // Methode mit zwei Parametern und mit Rückgabewert&lt;br /&gt;
    double berechneEinnahmen(double spenden, double sonstigeEinnahmen)&lt;br /&gt;
    {&lt;br /&gt;
        return mitglieder.Count * mitgliedsbeitrag + spenden + sonstigeEinnahmen;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Abgeordneter&lt;br /&gt;
{&lt;br /&gt;
    Partei partei;&lt;br /&gt;
&lt;br /&gt;
    // Methode ohne Parameter und mit Rückgabewert&lt;br /&gt;
    Partei gibPartei()&lt;br /&gt;
    {&lt;br /&gt;
        return partei;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Parlament&lt;br /&gt;
{&lt;br /&gt;
    List&amp;lt;Abgeordneter&amp;gt; abgeordnete = new List&amp;lt;Abgeordneter&amp;gt;();&lt;br /&gt;
    Abgeordneter vorsitzender;&lt;br /&gt;
    int maximalGroesse;&lt;br /&gt;
&lt;br /&gt;
    // Methode mit einem Parameter und ohne Rückgabewert&lt;br /&gt;
    void wähleVorsitzender(Abgeordneter abgeordneter)&lt;br /&gt;
    {&lt;br /&gt;
        vorsitzender = abgeordneter;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Methode mit einem Parameter und mit Rückgabewert&lt;br /&gt;
    int gibAnzahlDerAbgeordneten(Partei partei)&lt;br /&gt;
    {&lt;br /&gt;
        int anzahl = 0;&lt;br /&gt;
        foreach (Abgeordneter abgeordneter in abgeordnete)&lt;br /&gt;
        {&lt;br /&gt;
            if (abgeordneter.gibPartei() == partei)&lt;br /&gt;
            {&lt;br /&gt;
                anzahl++;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return anzahl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Spezielle Arten von Methoden ==&lt;br /&gt;
&lt;br /&gt;
=== Konstruktormethoden ===&lt;br /&gt;
{{Hauptartikel|Konstruktoren und Destruktoren}}&lt;br /&gt;
&lt;br /&gt;
[[Konstruktoren und Destruktoren|Konstruktoren]] sind spezielle Methoden ohne Ergebnistyp, deren Name mit dem Namen der [[Klasse (Objektorientierung)|Klasse]] übereinstimmt. Man muss also anfangen, Methoden in dem &amp;#039;&amp;#039;Kontext&amp;#039;&amp;#039; zu betrachten, in dem sie gebraucht werden bzw. definiert sind. Wie der Name vermuten lässt, dienen Konstruktoren dem „Erschaffen“ (Konstruieren) von [[Objekt (Programmierung)|Objekten]] nach einem gewissen Vorbild. Weiterhin kann man zwischen &amp;#039;&amp;#039;impliziten&amp;#039;&amp;#039; (vorgegebenen) und &amp;#039;&amp;#039;expliziten&amp;#039;&amp;#039; (selbst erstellten) Konstruktoren unterscheiden. Konstruktoren erfüllen die Aufgabe, die Variablen des Objekts zu initialisieren, d.&amp;amp;nbsp;h. ihnen einen Wert zuzuweisen.&lt;br /&gt;
&lt;br /&gt;
Als Gegenstücke zu den Konstruktoren gibt es in einigen Sprachen wie [[C++]] auch &amp;#039;&amp;#039;Destruktoren&amp;#039;&amp;#039;. In Java gibt es stattdessen [[Garbage Collection#Finalisierung|Finalisierungsmethoden]].&lt;br /&gt;
&lt;br /&gt;
=== Main-Methode in Java ===&lt;br /&gt;
Methoden können in der [[Programmiersprache]] [[Java (Programmiersprache)|Java]] nur dann ausgeführt werden, wenn sie von einem [[Objekt (Programmierung)|Objekt]] aufgerufen werden. Diese Objekte müssen aber vorher erzeugt werden. Wenn ein [[Computerprogramm|Programm]] gestartet wird, gibt es zuerst aber nur Klassen und noch keine Objekte. Irgendwo muss der Anfang gesetzt werden und das passiert in Java mit der &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode. Klassen, die eine &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode enthalten, sind ausführbare [[Klasse (Objektorientierung)|Klassen]], da die &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode direkt von der [[Java Virtual Machine]] aufgerufen wird. Beispielsweise sorgt der Aufruf &amp;lt;code&amp;gt;java Beispielklasse&amp;lt;/code&amp;gt; dafür, dass die [[Laufzeitumgebung]] versucht, in der Klasse &amp;lt;code&amp;gt;Beispielklasse&amp;lt;/code&amp;gt; eine Methode mit Namen &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;, Rückgabetyp &amp;lt;code&amp;gt;void&amp;lt;/code&amp;gt; und einem Stringarray als [[Parameter (Informatik)|Parameter]] zu finden und auszuführen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Beispielklasse {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        for (String arg: args) {&lt;br /&gt;
            System.out.println(&amp;quot;Parameter: &amp;quot; + arg);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Überladen von Methoden===&lt;br /&gt;
Beim [[Überladen]] von Methoden bekommen zwei oder mehrere Methoden denselben Namen. Welche dieser Methoden tatsächlich aufgerufen wird, hängt von den [[Parameter (Informatik)|Parametern]] ab: es wird diejenige Methode ausgeführt, deren formale Parameter den tatsächlichen Parametern entsprechen, mit denen die Methode aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
=== Zugriffsmethoden ===&lt;br /&gt;
{{Hauptartikel|Zugriffsfunktion}}&lt;br /&gt;
&lt;br /&gt;
Die [[Zugriffsmethode|Zugriffsmethoden]] sind eigentlich normale Methoden, die einzelne Eigenschaften (Attribute) eines [[Objekt (Programmierung)|Objekts]] abfragen oder ändern können. Es hat sich im [[Programmierstil]] der [[Objektorientierte Programmierung|objektorientierten Programmierung]] eingebürgert entsprechende Methoden mit den [[Präfix|Präfixen]] &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt; zu versehen. Insbesondere in der [[Programmiersprache]] [[Java (Programmiersprache)|Java]] werden diese Methoden auch &amp;#039;&amp;#039;getter&amp;#039;&amp;#039; und &amp;#039;&amp;#039;setter&amp;#039;&amp;#039; genannt. Dahingegen lauten bei [[Microsoft Visual FoxPro]] die Schlagwörter für dieses Konzept Access- und Assign-Methoden.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx |titel=Access- und Assign-Methoden |werk=Visual Studio .NET 2003, Visual FoxPro |hrsg=Microsoft |zugriff=2013-10-21 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multimethoden ===&lt;br /&gt;
{{Hauptartikel|Multimethode}}&lt;br /&gt;
&lt;br /&gt;
In einigen Sprachen gibt es sogenannte [[Multimethode]]n, welche gleichzeitig auf mehreren Parameter-[[Objekt (Programmierung)|Objekten]] operieren und daher in mehreren [[Parameter (Informatik)|Parametern]] [[Polymorphie (Programmierung)|polymorph]] sein können.&lt;br /&gt;
&lt;br /&gt;
=== Virtuelle Methoden ===&lt;br /&gt;
{{Hauptartikel|Virtuelle Methode}}&lt;br /&gt;
&lt;br /&gt;
Eine [[virtuelle Methode]] ist eine Methode, bei der erst zur [[Laufzeit (Informatik)|Laufzeit]] ermittelt wird, welche konkrete Implementierung verwendet wird. Dieses sogenannte [[dynamisches Binden|dynamische Binden]] ermöglicht es, Methoden zu [[Überschreiben (OOP)|überschreiben]] bzw. zu [[überladen]]. Das Konzept der virtuellen Methoden wird von einem [[Compiler]] zum Beispiel mittels [[Tabelle virtueller Methoden|virtueller Tabellen]] umgesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Statische Methoden ===&lt;br /&gt;
Einige [[Objektorientierte Programmiersprache|objektorientierte Programmiersprachen]] wie beispielsweise [[Java (Programmiersprache)|Java]] unterscheiden&lt;br /&gt;
* Methoden, die von einem konkreten [[Objekt (Programmierung)|Objekt]] ausgeführt werden (&amp;#039;&amp;#039;Objekt-&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;[[Objekt (Programmierung) #Instanziierung|Instanz]]&amp;lt;nowiki/&amp;gt;methoden&amp;#039;&amp;#039;); sie können auf den Zustand des konkreten Objekts bzw. der Instanz zugreifen, &lt;br /&gt;
* Methoden, die &amp;#039;&amp;#039;ohne&amp;#039;&amp;#039; Objekt ausgeführt werden (&amp;#039;&amp;#039;statische&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Klassenmethoden&amp;#039;&amp;#039;); sie arbeiten nur mit [[Attribut (Programmierung)|Eigenschaften]] der [[Klasse (Objektorientierung)|Klasse]].&lt;br /&gt;
Die o.&amp;amp;nbsp;g. &amp;#039;&amp;#039;main&amp;#039;&amp;#039;-Methode ist ein Beispiel für eine statische Methode.&amp;lt;ref&amp;gt;{{Internetquelle | autor=James Gosling u.&amp;amp;nbsp;a.| url=http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2 | titel=Chapter 8. Classes | werk=The Java Language Specification: Java SE 7 Edition | datum=2013-02-28 |zugriff=2014-01-20 | sprache=englisch }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur |Autor=Laura Lemay, Charles L. Perkins |Titel=Java in 21 Tagen |Jahr=2000 |ISBN=3-8272-5578-3 }}&lt;br /&gt;
* {{Literatur |Autor=Katharina Morik, Volker Klingspor |Titel=Informatik kompakt. Eine grundlegende Einführung mit Java |Verlag=Springer |Jahr=2006 |ISBN=3-540-24304-6 }}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.highscore.de/java/einfuehrung/index.html Methoden in Java, ausführlich mit Beispielen]&lt;br /&gt;
* [http://www.dfpug.de/konf%5Ckonf_1998%5C01_VFP%5CD_ASSI/D_ASSI.HTM Assign- und Access-Methoden unter Visual FoxPro 6.0]&lt;br /&gt;
* [http://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6601-Methoden.html Methoden in Java]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;br /&gt;
[[Kategorie:Objektorientierte Programmierung]]&lt;br /&gt;
[[Kategorie:Unterprogramm]]&lt;br /&gt;
&lt;br /&gt;
[[sv:Funktion (programmering)#Metod]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Antonsusi</name></author>
	</entry>
</feed>