Methode: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Thomas (Diskussion | Beiträge) |
||
| (8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 11: | Zeile 11: | ||
=== Kopf === | === Kopf === | ||
Der Kopf einer Methode besteht aus der [[Sichtbarkeit]] und der [[Signatur]]. | Der Kopf einer Methode besteht aus der [[Sichtbarkeit]] und der [[Methodensignatur|Signatur]] plus Rückgabeparameter. | ||
==== Sichtbarkeit ==== | ==== Sichtbarkeit ==== | ||
| Zeile 29: | Zeile 29: | ||
==== Signatur ==== | ==== Signatur ==== | ||
Eine Signatur (oder Methodensignatur) definiert in der Programmierung die Schnittstelle einer Methode. Sie besteht aus | Eine [[Methodensignatur|Signatur]](oder Methodensignatur) definiert in der Programmierung die Schnittstelle einer Methode. Sie besteht aus dem Namen der Methode und der Anzahl und Reihenfolge der [[Eingabeparameter]]. | ||
==== Methodenname ==== | ==== Methodenname ==== | ||
Der Methodenname ist freiwählbar. In der objektorientierten Softwareentwicklung ist es üblich Methodennamen mit einem Verb zu benennen. Hierdurch wird deutlich, dass die Methode Verhalten repräsentiert. So ist der Quelltext leichter zu lesen und zu verstehen. | Der Methodenname ist freiwählbar. In der objektorientierten Softwareentwicklung ist es üblich Methodennamen mit einem Verb zu benennen. Hierdurch wird deutlich, dass die Methode Verhalten repräsentiert. So ist der Quelltext leichter zu lesen und zu verstehen. | ||
==== Parameter ==== | |||
===== Rückgabeparameter ===== | |||
Der Rückgabeparameter definiert den (Daten)-Typen möglicher Ergebnisse dieser Methode. Das Ergebnis wird aus dem [[Körper]] der Methode mittels eines return-Befehls (return) zurückgegeben. Möglich sind [[Primitive Datentypen|primitive Datentypen]] wie Integer, Double oder Boolean aber auch [[Komplexe Datentypen|komplexe Datentypen]]. Komplexe Datentypen könne ein beliebige [[Klassen]] sein wie z.B. Mitarbeiter. | |||
Um eine Methode flexibel und wieder verwendbar zu gestalten, können von außen Werte an Variablen übergeben werden. Diese Variablen nennt man [[Eingabeparameter]]. Möglich sind 0 bis N Variablen. Jede Variable muss [[Deklaration|deklariert]] werden; benötigt also einen [[Datentyp]] und einen Namen. Die einzelnen Variablen werden durch Kommas getrennt. Die gesamte Eingabeparameterliste wird in runde Klammern geschrieben (), egal ob sie null oder n Parameter enthält. Wie beim Rückgabeparameter können primitive und komplexe Datentypen vergeben werden. | Soll ein Methode kein Ergebnis liefern muss das Schlüsselwort ''void'' geschrieben werden. | ||
===== Eingabeparameter ===== | |||
Um eine Methode flexibel und wieder verwendbar zu gestalten, können von außen Werte an Variablen übergeben werden. Diese Variablen nennt man [[Eingabeparameter]]. Möglich sind 0 bis N Variablen. Jede Variable muss [[Deklaration|deklariert]] werden; benötigt also einen [[Datentyp]] und einen Namen. Die einzelnen Variablen werden durch Kommas getrennt. Die gesamte Eingabeparameterliste wird in runde Klammern geschrieben (), egal ob sie null oder n Parameter enthält. Wie beim Rückgabeparameter können primitive und komplexe Datentypen vergeben werden. | |||
=== Körper === | === Körper === | ||
Der Körper einer Methode folgt auf den Kopf und wird in geschweiften Klammern geschrieben {}. Im Körper - also innerhalb der geschweiften Klammern - kann ein beliebiger [[Algorithmus]] stehen. Wurde | Der Körper einer Methode folgt auf den Kopf und wird in geschweiften Klammern geschrieben {}. Im Körper - also innerhalb der geschweiften Klammern - kann ein beliebiger [[Algorithmus]] stehen. Wurde im Kopf ein Rückgabeparameter definiert (also nicht ''void''), dann muss in jedem Fall ein zum Datentyp des Rückgabeparameters kompatible Rückgabe erfolgen. Die Rückgabe wird im Körper durch das Schlüsselwort ''return'' kenntlich gemacht. | ||
Der [[Algorithmus]] einer Methoden wird durch [[Kontrollstruktur|Kontrollstrukturen]], Ausdrücke und Operanden definiert. | Der [[Algorithmus]] einer Methoden wird durch [[Kontrollstruktur|Kontrollstrukturen]], Ausdrücke und Operanden definiert. | ||
| Zeile 92: | Zeile 94: | ||
<syntaxhighlight lang="Java"> | <syntaxhighlight lang="Java"> | ||
public String getName(){ | public String getName(){ | ||
return name; | |||
} | |||
</syntaxhighlight> | |||
Diese Methode ist öffentlich zugänglich (public). Sie liefert ein Ergebnis vom Typ String. Daher muss auch im Körper der Methode ein return-Befehl stehen. Der Name der Methode lautet "getName". Get steht für gib und ist ein Verb. Die Eingabeparameter stehen in runden Klammern(). Hier gibt es keine Eingabeparameter, da nur der Werte der Instanzvariablen name zurückgegebenwerden soll. | Diese Methode ist öffentlich zugänglich (public). Sie liefert ein Ergebnis vom Typ String. Daher muss auch im Körper der Methode ein return-Befehl stehen. Der Name der Methode lautet "getName". Get steht für gib und ist ein Verb. Die Eingabeparameter stehen in runden Klammern(). Hier gibt es keine Eingabeparameter, da nur der Werte der Instanzvariablen name zurückgegebenwerden soll. | ||
| Zeile 127: | Zeile 128: | ||
Beim Methodenaufruf wird die speziellste passende Methode ausgeführt. D.h. es wird automatisch die Methode ausgewählt, für die am wenigsten Parameter implizit in andere Datentypen konvertiert werden müssen. Diese Auswahl muss eindeutig sein. | Beim Methodenaufruf wird die speziellste passende Methode ausgeführt. D.h. es wird automatisch die Methode ausgewählt, für die am wenigsten Parameter implizit in andere Datentypen konvertiert werden müssen. Diese Auswahl muss eindeutig sein. | ||
Die folgenden Methoden ermitteln das Minimum einer Eingabeparameterliste. Methode 3 wird einen Compilerfehler auslösen, da sich die Signatur nur durch den Rückgabeparameter unterscheidet. Dies ist nicht ausreichend, um einer Methode zu überladen. | Die folgenden Methoden ermitteln das Minimum einer Eingabeparameterliste. Methode 3 wird einen Compilerfehler auslösen, da sich die [[Methodensignatur|Signatur]] nur durch den Rückgabeparameter unterscheidet. Dies ist nicht ausreichend, um einer Methode zu überladen. | ||
<syntaxhighlight lang="Java"> | <syntaxhighlight lang="Java"> | ||
public class Berchnung | public class Berchnung | ||
| Zeile 184: | Zeile 185: | ||
== Polymorphie == | == Polymorphie == | ||
[[Polymorphie]] bedeutet "Vielgestaltigkeit." Im Bereich der [[Objektorientierung]] bezieht sich Polymorphie darauf, dass verschiedene [[Objekt|Objekte]] bei Aufruf derselben Methode unterschiedliches Verhalten an den Tag legen können. | [[Polymorphie]] bedeutet "Vielgestaltigkeit." Im Bereich der [[Objektorientierung]] bezieht sich Polymorphie darauf, dass verschiedene [[Objekt|Objekte]] bei Aufruf derselben Methode unterschiedliches Verhalten an den Tag legen können. | ||
[[Kategorie:Programmierung]] | |||
[[Kategorie:AHR_I_Informatik_LK]] | |||
[[Kategorie:FI_I_SDM]] | |||
[[Kategorie:FI_I_TP1]] | |||