Informatik-Lexikon

Parameter

Parameter sind Variablen, die dazu dienen, einer Methode beim Aufruf bestimmte Informationen zu übergeben. Zum Beispiel muss eine Methode namens setzeNeuePosition() die Koordinaten der neuen Position mitgeteilt bekommen. Daher schreibt man bei der Definition der Funktion die so genannten formalen Parameter in runde Klammern hinter den Funktionsnamen:

public void setzeNeuePosition(int x, int y) 
{ 
   xpos = x;
   ypos = y;
   ...
}

Hier sehen wir zwei formale Parameter vom Typ int, nämlich x und y. Ein formaler Parameter hat also einen Namen (x, y) und einen Datentyp (int, float, double, boolean, String etc.).

Beim Aufruf der Funktion, z.B. so:

   macheDies();
   setzeNeuePosition(200,100);
   macheDas();
werden konkrete Werte als aktuelle Parameter übergeben, hier also 200 und 100.

Der konkrete Wert 200 wird beim Aufrufen der Funktion in den formalen Parameter x hineingeschrieben, der konkrete Wert 100 in den formalen Parameter y. Wenn setzeNeuePosition() ausgeführt wird, haben die Parameter x und y also tatsächlich die Werte 200 bzw. 100. Durch die beiden Zuweisungen in unserer Beispielfunktion haben dann auch die Attribute xpos und ypos die Werte 200 bzw. 100.

Hier noch eine wichtige Regel, die aber eigentlich ganz selbstverständlich sein sollte:

Beim Aufrufen einer Funktion müssen die aktuellen Parameter in Anzahl, Datentyp und Reihenfolge mit den formalen Parametern übereinstimmen.

Richtige Aufrufe von setzeNeuePosition(int x, int y)

setzeNeuePosition(400, 20); // hier werden zwei Zahlenkonstanten übergeben

setzeNeuePosition(neuX, neuY); // hier werden zwei int-Variable übergeben

Fehlerhafte Aufrufe von setzeNeuePosition(int x, int y)

setzeNeuePosition(400); // hier wird nur ein Parameter übergeben

setzeNeuePosition("Yellow", "Green"); // hier werden zwei Parameter des falschen Typs übergeben

setzeNeuePosition(int x, int y); // hier wurde die falsche Syntax gewählt, nämlich die einer Funktions-Definition und nicht die eines Funktions-Aufrufs.

setzeNeuePosition(NeuY, NeuX); // hier ist formal alles korrekt, doch hat der Programmierer aus Versehen zuerst die neue Y-Koordinate übergeben und dann die neue X-Koordinate. In der Funktion erhält dann das Attribut xpos den neuen Y-Wert zugewiesen und ypos den neuen X-Wert.