Gegeben seien die folgenden beiden Java-Klassen:
public class Character {
String name;
House house;
public Character(String name, House house) {
this.name = name;
this.house = house; }
}
public class House {
String name;
String words;
public House(String name, String words) {
this.name = name;
this.words = words;
}
public House clone() {
return new House(this.name, this.words);
}
}
Mit den obigen beiden Klassen wird der folgende Code ausgeführt.
House stark = new House("Stark", "Winter is coming.");
House none = null;
Character john = new Character("John Snow", stark);
Character bran = new Character("Bran Stark", stark);
Character arya = new Character("Arya Stark", stark.clone());
Character tyrion = new Character("Tyrion Lannister", none);
Skizzieren Sie danach die Situation im Speicher: Welche Objekte existieren (Rechtecke) und wie verweisen diese aufeinander (Pfeile)?
Wir verpassen Johns Haus den Doppelnamen ``Stark-Targaryen''. Was genau bewirken dies im Speicher? Was wird ausgegeben?
john.house.name += "-Targaryen";
System.out.println(bran.house.name);
System.out.println(arya.house.name);
Welche der folgenden Zeilen werfen eine Exception?
john.house.name = john.name;
System.out.println(tyrion.house);
tyrion.house.name = "Lannister";
House[] houses = new House[] {stark, stark, null};