Hi,
ich habe mal ein "Luxusproblem". In der Uni haben wir eine Programmierübung erledigen sollen, gelöst habe ich sie auch schon. Es war aber eine Methode gegeben, die zwar funktioniert, bei der ich allerdings nicht so recht verstehe, warum sie funktioniert.
Hier der Quelltext der Methode:
Es geht um Patienten, die man mit einer setName()-Methode benennt, dann mittels setVorgaenger die Reihenfolge festlegt, welcher Patient wann dran ist und diese schließlich mit der obigen Methode toString ausgibt.
Wenn man nun drei Patienten p1, p2, p3 hat, dann erhält man die folgende Ausgabe:
Und genau das verstehe ich nicht. Wenn ich mir die Methode ansehe, dann würde ich damit rechnen, dass die Ausgabe nach "P3 ist nach P2 dran." abbrechen würde. Ich verstehe aber auch nicht, welche Funktion das an den String angehängte "vorgaenger" hat. Vermutlich ist genau das dafür verantwortlich, dass die Methode quasi ein weiteres Mal aufgerufen wird, aber wie und wieso funktioniert das?
Gruß
StephanL
ich habe mal ein "Luxusproblem". In der Uni haben wir eine Programmierübung erledigen sollen, gelöst habe ich sie auch schon. Es war aber eine Methode gegeben, die zwar funktioniert, bei der ich allerdings nicht so recht verstehe, warum sie funktioniert.
Hier der Quelltext der Methode:
Java:
public String toString() {
String ausgabe = name;
if (vorgaenger != null)
ausgabe = ausgabe + " ist nach " + vorgaenger.getName() + " dran. " + vorgaenger;
else
ausgabe = ausgabe + " ist als erstes dran.";
return ausgabe;
}
Es geht um Patienten, die man mit einer setName()-Methode benennt, dann mittels setVorgaenger die Reihenfolge festlegt, welcher Patient wann dran ist und diese schließlich mit der obigen Methode toString ausgibt.
Wenn man nun drei Patienten p1, p2, p3 hat, dann erhält man die folgende Ausgabe:
P3 ist nach P2 dran. P2 ist nach P1 dran. P1 ist als erstes dran.
Und genau das verstehe ich nicht. Wenn ich mir die Methode ansehe, dann würde ich damit rechnen, dass die Ausgabe nach "P3 ist nach P2 dran." abbrechen würde. Ich verstehe aber auch nicht, welche Funktion das an den String angehängte "vorgaenger" hat. Vermutlich ist genau das dafür verantwortlich, dass die Methode quasi ein weiteres Mal aufgerufen wird, aber wie und wieso funktioniert das?
Gruß
StephanL