Seite 1 von 1

Uebung 8, Aufgabe 2 (Binaere Baeume), b) die Methode

Verfasst: 1. Sep 2012 16:01
von boshva
Hallo, Kann mir jemand helfen bei der Methode public String toString()

Code: Alles auswählen

public String toString() {
		String str = "";
		
		if (hasLeft()) str += left.toString(); // Linker Teilbaum
		str += (data + " "); // Eigener String
		if (hasRight()) str += right.toString(); // Rechter Teilbaum
		
		return str.toString();
	}
Hier wird ja die Rekursion benutzt,
kann mir bitte jemand erklären wir das return str.toString(); funktioniert
So wie ich das verstehe gibt die Methode den str als String zurück, aber wieso geht es wieser in die Methode toString() von einem Tree zurück;
oder verstehe ich es komplett falsch.
Danke

Re: Uebung 8, Aufgabe 2 (Binaere Baeume), b) die Methode

Verfasst: 1. Sep 2012 21:49
von mmec
Hallo boshva,

ich weiß auch nicht warum du für deinen String str die Methode toString noch einmal aufrufst, lass es doch einfach weg^^. Es wird dabei natürlich die Methode toString der Klasse String aufgerufen!

Und wenn du in der Java API nachschaust siehst du dass diese Methode den String selbst zurückgibt:
Java API hat geschrieben:toString

public String toString()
This object (which is already a string!) is itself returned.
Specified by:
toString in interface CharSequence
Overrides:
toString in class Object
Returns:
the string itself.
Java API String toString()

Die ersten zwei toString in deiner Methode werden auf die Baumobjekte angewandt und deswegen wird auch die toString Methode dieser Baumklasse aufgerufen.

Alles klar?

Grüße, Johannes