class Konto implements Cloneable {
    public String inhaber;
    public int stand;

    Konto (String inhaber, int stand) {
	this.inhaber = inhaber;
	this.stand = stand;
    }

    public Object clone() throws CloneNotSupportedException {
	return super.clone();
    }
}

class Person implements Cloneable {

    public String name;
    public Konto konto;

    Person (String name, Konto konto) {
	super();
	this.name = name;
	this.konto = konto;
    }
    public Object clone() throws CloneNotSupportedException {
	Person person = (Person) super.clone();
	person.konto = (Konto) this.konto.clone();
	return person;
    }
	
    public static void main (String[] args) throws CloneNotSupportedException {

	Konto konto = new Konto("Andreas Abel", 1000);
	Person person1 = new Person("Andreas", konto);
	Person person2 = (Person) person1.clone();
	person2.name = "Joanna";
	person1.konto.stand = 0;
        System.out.println (person2.name);
        System.out.println (person2.konto.inhaber);
	System.out.println (person2.konto.stand);
    }
}
