Was macht hier genau return?

kommel

Neues Mitglied
Hallo,

ich habe ein Frage zu folgender Methode:

Java:
public String toString(){
		String kp="";
		if(left != null){
			return left.toString() +" ";}
		kp=kp+val;		
		if(right != null){
			return kp+" "+ right.toString();
		}
		return kp;
}


Sie gehört zu einer Liste, deren Knoten aus zwei Referenzvariablen "left" und "right" und einem String "val" aufgebaut sind.

Meine Frage ist nun die folgende:

Wenn ich nun an einem Punkt angekommen bin, bei dem "left == null" und "right == null", dann gibt ja die Methode den String kp an die zuvor aufgerufene Methode zurück und steigt (vorausgesetzt, dass die Methode zuvor durch "left!=null" aufgerufen wurde) in der Zeile "return left.toString()+" "; " wieder ein.

Meine Frage ist nun, warum der zurückgegebene String nicht verloren geht? was passiert hier, dass ich die Rückgabe weiter verwenden kann.

So wie ich das sehe, wird die Rückgabe in dem String kp gespeichert, aber das taucht nirgends in dem Code auf? Warum funktioniert also die Zeile kp=kp+val;?

kp ist doch nirgends verändert worden?!

Ich hoffe man versteht mich,

Gruß kummel
 
Ich muss sagen, dass ich wenig von deinem Problem verstanden habe. Kannst du das bitte noch mal verständlicher beschreiben? 😉

Wenn eine Methode durch ein return beendet wurde, dann ist sie beendet und dann muss explizit angegeben werden, dass wieder hineingesprungen werden soll. Da steigt niemand wieder irgendwo ein. Ich glaube, du meinst einen Sprungbefehl. Den gibt es aber nicht bei Java.
 

Zurück
Oben