Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
Methode (Programmierung) – Wikipedia Zum Inhalt springen

Methode (Programmierung)

aus Wikipedia, der freien Enzyklopädie

Methoden ({{#invoke:Vorlage:lang|full|CODE=en|SCRIPTING=Latn|SERVICE=englisch}} oder {{#invoke:Vorlage:lang|flat}}) sind in der objektorientierten Programmierung Unterprogramme in der Form von Funktionen oder Prozeduren, die das Verhalten von Objekten beschreiben und implementieren. Über die Methoden des Objekts können Objekte untereinander in Verbindung treten.

Definition

Das Kernstück jeder objektorientierten Programmierung 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 charakterisieren. Sie enthalten die algorithmische Essenz des Objektes. In der objektorientierten Programmierung sind Methoden Teil der Definition einer Klasse.

Methodenaufruf

In der Definition einer Methode können ein oder mehrere formale Parameter festgelegt werden, mit denen die Methode aufgerufen werden kann. Es gibt auch Methoden ohne Parameter. Ein formaler Parameter ist der Name einer Variablen und wird auch Übergabewert genannt. In vielen Programmiersprachen ist zusätzlich die Deklaration der Datentypen dieser Variablen nötig. Diese Datentypen können elementare Datentypen oder Klassen, also Objekttypen sein. Die Methode wird ausgeführt, wenn sie über den Methodennamen und passende aktuelle Parameter angesprochen wird. Die Anweisungen im Methodenrumpf werden dann mit diesen Übergabewerten ausgeführt. Diese Anweisungen werden von oben nach unten und von links nach rechts ausgeführt.

Der Name der Methode sowie die Anzahl, Art und Reihenfolge der zuweisungskompatiblen Datentypen der Parameter und falls vorhanden der Rückgabetyp definieren die Signatur der Methode.

Beispiel

Das folgende Beispiel in der Programmiersprache C# zeigt die Methoden berechneEinnahmen(...), gibPartei(), wähleVorsitzender(...) und gibAnzahlDerAbgeordneten(...), die von den Klassen Partei, Abgeordneter und Parlament definiert werden. Die Parameter werden in den Klammern hinter dem Namen der Methode deklariert. Der Datentyp steht jeweils vor dem Namen der Variablen. Der Rückgabetyp steht vor dem Namen der Methode. Bei Methoden ohne Rückgabewert wird der Rückgabetyp void angegeben.<syntaxhighlight lang="c#"> class Partei {

   List<Person> mitglieder;
   double mitgliedsbeitrag;
   // Methode mit zwei Parametern und mit Rückgabewert
   double berechneEinnahmen(double spenden, double sonstigeEinnahmen)
   {
       return mitglieder.Count * mitgliedsbeitrag + spenden + sonstigeEinnahmen;
   }

}

class Abgeordneter {

   Partei partei;
   // Methode ohne Parameter und mit Rückgabewert
   Partei gibPartei()
   {
       return partei;
   }

}

class Parlament {

   List<Abgeordneter> abgeordnete = new List<Abgeordneter>();
   Abgeordneter vorsitzender;
   int maximalGroesse;
   // Methode mit einem Parameter und ohne Rückgabewert
   void wähleVorsitzender(Abgeordneter abgeordneter)
   {
       vorsitzender = abgeordneter;
   }
   // Methode mit einem Parameter und mit Rückgabewert
   int gibAnzahlDerAbgeordneten(Partei partei)
   {
       int anzahl = 0;
       foreach (Abgeordneter abgeordneter in abgeordnete)
       {
           if (abgeordneter.gibPartei() == partei)
           {
               anzahl++;
           }
       }
       return anzahl;
   }

} </syntaxhighlight>

Spezielle Arten von Methoden

Konstruktormethoden

{{#if: Konstruktoren und Destruktoren|{{#ifexist:Konstruktoren und Destruktoren|

|{{#if: |{{#ifexist:{{{2}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{2}}}{{#if: ||{{{titel2}}}}}]]{{#if: |{{#ifexist:{{{3}}}| und [[{{{3}}}{{#if: ||{{{titel3}}}}}]]|}}|}}

|{{#if: |{{#ifexist:{{{3}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{3}}}{{#if: ||{{{titel3}}}}}]]

|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}

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. 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. Konstruktoren erfüllen die Aufgabe, die Variablen des Objekts zu initialisieren, d. h. ihnen einen Wert zuzuweisen.

Als Gegenstücke zu den Konstruktoren gibt es in einigen Sprachen wie C++ auch Destruktoren. In Java gibt es stattdessen Finalisierungsmethoden.

Main-Methode in Java

Methoden können in der Programmiersprache Java nur dann ausgeführt werden, wenn sie von einem Objekt aufgerufen werden. Diese Objekte müssen aber vorher erzeugt werden. Wenn ein 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 main-Methode. Klassen, die eine main-Methode enthalten, sind ausführbare Klassen, da die main-Methode direkt von der Java 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.

<syntaxhighlight lang="java"> public class Beispielklasse {

   public static void main(String[] args) {
       for (String arg: args) {
           System.out.println("Parameter: " + arg);
       }
   }

} </syntaxhighlight>

Überladen von Methoden

Beim Überladen von Methoden bekommen zwei oder mehrere Methoden denselben Namen. Welche dieser Methoden tatsächlich aufgerufen wird, hängt von den Parametern ab: es wird diejenige Methode ausgeführt, deren formale Parameter den tatsächlichen Parametern entsprechen, mit denen die Methode aufgerufen wird.

Zugriffsmethoden

{{#if: Zugriffsfunktion|{{#ifexist:Zugriffsfunktion|

|{{#if: |{{#ifexist:{{{2}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{2}}}{{#if: ||{{{titel2}}}}}]]{{#if: |{{#ifexist:{{{3}}}| und [[{{{3}}}{{#if: ||{{{titel3}}}}}]]|}}|}}

|{{#if: |{{#ifexist:{{{3}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{3}}}{{#if: ||{{{titel3}}}}}]]

|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}

Die Zugriffsmethoden sind eigentlich normale Methoden, die einzelne Eigenschaften (Attribute) eines Objekts abfragen oder ändern können. Es hat sich im Programmierstil der objektorientierten Programmierung eingebürgert entsprechende Methoden mit den Präfixen get bzw. set zu versehen. Insbesondere in der Programmiersprache 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.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:Access- und Assign-Methoden|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Access- und Assign-Methoden}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Access- und Assign-Methoden}}}}|[{{#invoke:URLutil|getNormalized|1=http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Access- und Assign-Methoden}}}}]}}{{#if:| ({{{format}}}{{#if:Visual Studio .NET 2003, Visual FoxProMicrosoft{{#if: 2013-10-21 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:de|de||{{#if:|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx}}%7C%7C}}}}{{#if:Access- und Assign-Methoden|{{#if:{{#invoke:WLink|isValidLinktext|1=Access- und Assign-Methoden|lines=0}}||}}}}{{#if: Visual Studio .NET 2003, Visual FoxPro| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Visual Studio .NET 2003, Visual FoxPro}}}}{{#if: Microsoft| Microsoft{{#if: |,|{{#if: 2013-10-21 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
            |{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2013-10-21 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2013-10-21 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:Microsoft|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:65753||(?)}}}}}}{{#if: 2013-10-21|;}}}}{{#if: 2013-10-21| {{#if:Microsoft{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2013-10-21 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2013-10-21|class=Zitationswartung}} }} {{#invoke:DateTime|format|2013-10-21|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:|1}}}}|{{#if:Visual Studio .NET 2003, Visual FoxProMicrosoft{{#if: 2013-10-21 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:de|de|de}}|de||
          {{#invoke:Multilingual|format|{{{sprache}}}|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2013-10-21 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx
      | {{#if:{{#invoke:URLutil|isWebURL|http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx
       | {{#if:{{#invoke:URLutil|isWebURL|http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx
      | {{#if:{{#invoke:URLutil|isWebURL|http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx
       | {{#if:{{#invoke:URLutil|isWebURL|http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://msdn.microsoft.com/de-de/library/cc450515(VS.71).aspx }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Multimethoden

{{#if: Multimethode|{{#ifexist:Multimethode|

|{{#if: |{{#ifexist:{{{2}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{2}}}{{#if: ||{{{titel2}}}}}]]{{#if: |{{#ifexist:{{{3}}}| und [[{{{3}}}{{#if: ||{{{titel3}}}}}]]|}}|}}

|{{#if: |{{#ifexist:{{{3}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{3}}}{{#if: ||{{{titel3}}}}}]]

|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}

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

Virtuelle Methoden

{{#if: Virtuelle Methode|{{#ifexist:Virtuelle Methode|

|{{#if: |{{#ifexist:{{{2}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{2}}}{{#if: ||{{{titel2}}}}}]]{{#if: |{{#ifexist:{{{3}}}| und [[{{{3}}}{{#if: ||{{{titel3}}}}}]]|}}|}}

|{{#if: |{{#ifexist:{{{3}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{3}}}{{#if: ||{{{titel3}}}}}]]

|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}

Eine virtuelle Methode ist eine Methode, bei der erst zur Laufzeit ermittelt wird, welche konkrete Implementierung verwendet wird. Dieses sogenannte dynamische Binden ermöglicht es, Methoden zu überschreiben bzw. zu überladen. Das Konzept der virtuellen Methoden wird von einem Compiler zum Beispiel mittels virtueller Tabellen umgesetzt.

Statische Methoden

Einige objektorientierte Programmiersprachen wie beispielsweise Java unterscheiden

  • Methoden, die von einem konkreten Objekt ausgeführt werden (Objekt- oder Instanzmethoden); sie können auf den Zustand des konkreten Objekts bzw. der Instanz zugreifen,
  • Methoden, die ohne Objekt ausgeführt werden (statische oder Klassenmethoden); sie arbeiten nur mit Eigenschaften der Klasse.

Die o. g. main-Methode ist ein Beispiel für eine statische Methode.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:James Gosling u. a.|James Gosling u. a.: }}{{#if:|{{#if:Chapter 8. Classes|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Chapter 8. Classes}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Chapter 8. Classes}}}}|[{{#invoke:URLutil|getNormalized|1=http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Chapter 8. Classes}}}}]}}{{#if:| ({{{format}}}{{#if:The Java Language Specification: Java SE 7 Edition2013-02-28{{#if: 2014-01-20 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:englisch|de||{{#if:englisch|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2}}%7C%7C}}}}{{#if:Chapter 8. Classes|{{#if:{{#invoke:WLink|isValidLinktext|1=Chapter 8. Classes|lines=0}}||}}}}{{#if: The Java Language Specification: Java SE 7 Edition| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=The Java Language Specification: Java SE 7 Edition}}}}{{#if: | {{{hrsg}}}{{#if: 2013-02-28|,|{{#if: 2014-01-20 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 2013-02-28| {{#if:{{#invoke:DateTime|format|2013-02-28|noerror=1}}
            |{{#invoke:DateTime|format|2013-02-28|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2013-02-28|class=Zitationswartung}} }}{{#if: |,|{{#if: 2014-01-20 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2014-01-20 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:2013-02-28|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:65753||(?)}}}}}}{{#if: 2014-01-20|;}}}}{{#if: 2014-01-20| {{#if:2013-02-28{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2014-01-20 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2014-01-20|class=Zitationswartung}} }} {{#invoke:DateTime|format|2014-01-20|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:englisch|de||{{#if:englisch|1}}}}|{{#if:The Java Language Specification: Java SE 7 Edition2013-02-28{{#if: 2014-01-20 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:englisch|englisch|de}}|de||
          {{#invoke:Multilingual|format|englisch|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:englisch|englisch|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2013-02-28{{#if: 2014-01-20 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}englisch|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2
       | {{#if:  | [3] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2
      | {{#if:{{#invoke:URLutil|isWebURL|http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2
       | {{#if:{{#invoke:URLutil|isWebURL|http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2 }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2
       | {{#if:  | [4] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2
      | {{#if:{{#invoke:URLutil|isWebURL|http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2
       | {{#if:{{#invoke:URLutil|isWebURL|http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.2 }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Literatur

  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}

Einzelnachweise

<references />

Weblinks

sv:Funktion (programmering)#Metod