Gegeben sei die folgenden Java-Klasse:
public class Person {
String name;
Person parent;
public Person(String name,
Person parent) {
this.name = name;
this.parent = parent;
}
public Person child() {
Person child = new Person(this.name, this);
return child;
}
}
Es wird der folgende Code ausgeführt:
Person darth = new Person("Vader", null);
Person breha = new Person("Organa", null);
Person leia = breha.child();
Person ben = leia.child();
Person anakin = new Person("Organa", leia);
leia.parent = darth;
leia.name += "-Vader";
- Skizzieren Sie die Situation nach den ersten 5 Zeilen im Speicher: Welche Objekte existieren (Rechtecke) und wie verweisen diese aufeinander (Pfeile)?
- Was genau bewirken die letzten beiden Zeilen im Speicher?
- Was würden die folgenden Zeilen nun ausgeben? Welche der Zeilen würden eine Exception werfen?
System.out.println(ben.parent.parent == darth);
System.out.println(anakin.name);
System.out.println(ben.name);
System.out.println(darth.parent);
System.out.println(darth.parent.name);