Java von Kopf bis Fuß "Java ist Pass-by-Value"

feardorcha

Mitglied
Hallo, liebe Nerds! 🙂

Ich bin blutiger Anfänger und wühle mich daher gerade durch das (meiner Meinung nach) wirklich sehr tolle Buch "Java von Kopf bis Fuß". Aber auch in diesem Buch gibt es (zumindest für mich) Passagen, die mir nicht direkt einleuchten. Daher habe ich eine Frage zu folgendem Problem:

Auf den Seiten 76 & 77 soll geklärt werden, was man alles einer Methode übergeben kann.

Zunächst wird anhand eines Beispiels eine Methode mit zwei Parametern aufgerufen und ihr zwei Argumente übergeben.

Dann wird mit folgendem Beispiel gezeigt, dass einer Methode Variablen übergeben werden können, wenn diese den Parametertypen entsprechen:

Java:
void los() {
	int foo = 7;
	int bar = 3;
	t.nimmZwei(foo, bar)
	
}

void nimmZwei (int x, int y) {
	int z = x + y
	System.out.println("Die Summe ist " + z);
}

Schön und gut... soweit klar!

Nun kommt ein weiteres Beispiel. Hier wird eine int-Variable deklariert und ihr der Wert 7 zugewiesen.
Dann wird eine Methode mit einem int-Parameter namens z deklariert.
Schließlich wird die Methode
Code:
los()
aufgerufen und ihr dabei die zuvor deklarierte Variable x als Argument übergeben. Und zwar folgendermaßen:

Java:
int x = 7;

void los (int z) {}
	foo.los(x);

Nun zu meiner Frage: Wieso wird hier das "foo" in
Code:
foo.los(x);
verwendet? Ist das nun so zu verstehen, dass foo noch aus dem vorigen Beispiel stammt und für die Zahl 7 steht? Das leuchtet mir jedoch nicht ganz ein, da ja "x" bereits den Wert 7 hat, wodurch wir das nicht bräuchten. Mir ist aber vielleicht auch noch nicht ganz klar, wie die Logik dieses Ausdrucks aufgebaut ist. Bin eben ein blutiger Anfänger.


Danke schonmal,

feardorcha
(keltisch für Frederic: wörtlich übersetzt "dunkler Mann" muhaha)
 
Zuletzt bearbeitet:
Nun zu meiner Frage: Wieso wird hier das "foo" in "foo.los(x);" verwendet?
Hab das Buch gerade nicht greifbar. Aber
Code:
foo
ist einer Variable die auf ein Objekt referenziert, welches eine Methode
Code:
los(int)
besitzt.
Ist das denn der komplette Bsp. Code oder hast Du da was zwischen drin ausgelassen? Kann mir jetzt nicht vorstellen, dass so ein Code als Beispiel in dem Buch steht.
 
Danke schonmal für die schnellen Antworten!

Das "liebe Nerds" war auch eher liebevoll und scherzhaft gemeint! 😉
Ich weiß doch, dass dieses Klischee nur manchmal zutrifft und ich auch einer von "Euch" bin/sein werde. Egal...

Also ich habe im Prinzip alles hingeschrieben, was da steht. Hier könnt Ihr online einsehen, was da steht (Seite 76 & 77): Klick mich!
 
Ist doch ganz klar, dass sich das [c]t.nimmZwei()[/c] auf das obige Beispiel ([c]TestZeug t = new TestZeug();[/c]) bezieht 🙂

hm? Mir nicht. Schließlich wurde im obigen Beispiel x & y mit 12 & 34 belegt, im unteren mit foo & bar, die wiederum 7 & 3 als Wert besitzen. Oder bin ich jetzt totaal auf dem falschen Dampfer?

EDIT: Außerdem war mein Problem ja eher dieses
Code:
foo.los(x)
im dritten Code-Schnipsel.
 
Zuletzt bearbeitet:
Der "Code" auf Seite 77 hat nichts mit dem Code auf 76 zu tun. Diese Codefetzen sollen nur den Text auf der rechten Seite unterstützen bzw. darstellen wie das an den entsprechenden Stellen in einem Code aussehen könnte. Wenn Du den Text rechts verstehst, kannst die Codefetzen ignorieren. Wichtig: Es handelt sich hier (Seite 77) nicht um ein Codebeispiel, sondern nur um Beispielcode ;-) - zu den jeweiligen Punkten.
 

Zurück
Oben