[Java]Parameterübergabebezeichnung ?!

mcburn83

Lieutenant
Registriert
Jan. 2006
Beiträge
524
Hallo, kann mir vielleicht jemand eben fix beantworten wie man bei diesen beiden auszügen aus nem Quelltext die Art der Parameterübergabe nennt?:

int methode(int a){return 2*a;}
int methode(int a){a = 2*a; return 0;}

wäre sehr freundlich.

Vielen Dank schonmal, falls sich da heute noch jemand zu herab läst ;)

MfG Burn
 
Das nennt man "call by value", weil der Wert direkt übergeben wird.

In C/C++ gibt es noch "call by reference".
Bsp. C++: int methode(int& a){return 2*a;}
Bsp. C: int methode(int* a){return 2*(*a);}

"Call by reference" gibt es in Java auch, aber dort ist nicht direkt ersichtlich. Primitive Datentype (wie z.B. int) werden "by value" übergeben, Objekte hingegen "by reference". Das sieht man aber nicht, weil es kein & oder * in der Argumentliste gibt.
 
Boron schrieb:
"Call by reference" gibt es in Java auch, aber dort ist nicht direkt ersichtlich. Primitive Datentype (wie z.B. int) werden "by value" übergeben, Objekte hingegen "by reference". Das sieht man aber nicht, weil es kein & oder * in der Argumentliste gibt.
Nein bei Java gibt es kein pass by reference. Der einzige Unterschied zwischen den primitiven Datentypen und Objekten ist, dass bei Objekten nur die Referenz kopiert wird und nicht das Objekt selbst.

http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html

@mcburn83: Ich weiß nicht worauf du anspielst, aber bezüglich der Paramterübergabe an die Funktion sind deine Beispiele identisch.
 
Zuletzt bearbeitet:
Oha, dann gehöre ich wohl zu der Gruppe Menschen, die das schlicht falsch verstanden haben :(. Aber das kommt davon, wenn man jahrelang nur Embedded Systeme in C programmiert. Ich brächte wohl kaum ein "Hello World" in Java zustande :p.
 
Zurück
Oben