Was ist eine Variable in Java und der Zusaamenhang von Parametern?

...komplette Frage anzeigen

1 Antwort

Eine Funktion definiert Parameter, an deren Stelle Variablen, Konstanten oder das Ergebnis eines Ausdrucks als Argumente übergeben werden. (Und zwar als Wert, und NICHT als Referenz ... wobei dieser Sachverhalt gerade bei Java immer zu endlos langen Diskussionen führt! Bei C++ ist das Ganze deutlich einfacher ... aber das nur am Rande. Zurück zu deiner Frage ...)

Beispiel:

public static void func(int x, double y, bool z) {
// ...
}

public static void main(String[] args) {
int i = 123;

func(i, 1.2e3, (2 == args.length));
}

Hier ist "i" eine Variable, die der Funktion func() als erstes Argument für den Integer-Parameter x übergeben wird.

Als zweites Argument wird ein Double-Literal übergeben.

Das dritte Argument liefert das Ergebnis des booleschen Ausdrucks.

Innerhalb der Funktion kann man also x mit 123, y mit 1.2e3 und z mit true oder false verwenden.

Argumente sind also die Dinge, die bei einem Funktionsaufruf übergeben werden, und Parameter das, unter dessen Typ und Wert diese innerhalb der Funktion verfügbar sind.

(Implizite Typkonvertierungen lassen wir jetzt mal unter den Tisch fallen ... also anstelle der Übergabe eines ints einen char, oder anstelle eines doubles einen float, etc.)

Disclaimer: Aus Gründen der Übersichtlichkeit ist mein Snippet auf das wesentliche reduziert, final wurde bewusst weggelassen, über die Syntax für Array-Argumnte oder die Eleganz von geklammerten Ausdrücken anstelle von temporären Variablen kann man streiten und Call-By-Value / Call-By-Reference lasse ich jetzt mal beiseite. (falls dir davon einige Punkte nichts sagen, bitte einfach ignorieren)

Schönen Tag noch und viel Erfolg bei deiner Klausur! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
12.05.2016, 03:07

PS: Der Name "args" in main() bezeichnet NICHT die Variable selbst, wonach sie ja eigentlich "parms" heißen müsste, sondern bezieht sich auf die Kommandozeilen-Argumente! Also von der Namensgebung nicht verwirren lassen! ;)

0

Was möchtest Du wissen?