[Progra] alte Klausur

[Progra] Programmierung
[DSAL] Datenstrukturen und Algorithmen
[SWT] Softwaretechnik
[DB] Datenbanken und Informationssysteme

alte Klausur

Beitragvon dvs » 12.01.09 22:18

Hi, ich verstehe auf der Seite 11 die toString()-Funktionsweise nicht ganz. Könnte mir es bitte jemand erklären? Hier ist der Link:
http://www-i2.informatik.rwth-aachen.de ... oesung.pdf
dvs
 
Beiträge: 107
Registriert: 12.01.09 22:15

Beitragvon mirko » 12.01.09 22:30

das ist eine rekursive funktion.

wenn es ein next-element gibt, wird die toString-funktion vom value und die von next (rekursiv) aufgerufen. (die von value ist in der klasse Value implementiert.) anschließend wird das ergebnis zusammengehängt. die rekursion läuft also so lange, bis next==null - dann wird noch einmal die toString-funktion von value aufgerufen und das ergebnis (beim abbau des rekursionsstacks) auch noch vorne drangehängt...

hast du denn das prinzip rekursiver funktionen schon verstanden?
mirko
 
Beiträge: 1032
Registriert: 22.10.06 18:33
Studiert seit: WS 12/13

Beitragvon C-Otto » 12.01.09 22:31

Der tiefere Sinn einer toString-Methode ist es, eine schoene und lesbare Darstellung der Objektinstanz zu liefern. In diesem Fall soll eine Liste als eine mit Kommata getrennte Ansammlung von Teilstrings gesehen werden, wobei jeder Teilstring die Darstellung des im Listenelement gespeicherten Wertes ist. Fuer die Liste 1 -> 2 -> 3 ist also "1, 2, 3" eine gewuenschte Darstellung.

Die Methode ListElement.toString() sorgt genau fuer eine solche Darstellung. Fuer den Wert, der im Listenelement gespeichert ist, wird die entsprechende toString()-Methode aufgerufen. Durch den Test auf next == null wird entschieden, ob ein Komma und ein restlicher String angehaengt werden muss oder nicht. Im Ausdruck value + ", " + next ist eigentlich value.toString() + ", " + next.toString() gemeint. Java ruft automatisch die toString()-Methode auf, wenn eine Stringdarstellung eines Objektes gewuenscht wird. Die Methode toString() wird in der obersten Klasse Object deklariert und auch implementiert.

Nach Fragen? :)

Ciao,
Carsten
Dr. rer. nat. Carsten Otto
http://verify.rwth-aachen.de/otto/
Benutzeravatar
C-Otto
 
Beiträge: 568
Registriert: 10.08.06 00:20
Wohnort: Schwalbach am Taunus
Studiert seit: fertig
Anwendungsfach: BWL


Zurück zu Praktische Informatik