/** * Eine Person mit einer Adresse und Ehegatten. */ public class Person { private String nachname; private String vorname; private int alter; private Adresse adresse; private Person ehegatte; /** * Erzeugt eine neue Person mit gegebenen vorname, nachname, alter * und adresse. * @param vorname * @param nachname * @param alter eine zahl größer gleich 0 * @param adresse eine Adresse, kann auch null sein. */ public Person(String vorname, String nachname, int alter, Adresse adresse) { this.vorname = vorname; this.nachname = nachname; if (alter >= 0) { this.alter = alter; } else { // Fehlerbehandlung } this.adresse = adresse; // stelle sicher, dass "adresse" zu dieser Person gehört if (adresse != null) { adresse.person = this; } } /** * Erzeugt eine Person mit gegebenen vor- und nachnamen, alter und * ohne Adresse oder Ehegatten. * * @param vorname * @param nachname * @param alter eine Zahl größer gleich Null */ public Person(String vorname, String nachname, int alter) { this(vorname, nachname, alter, null); } /** * Heiratet den angegebenen Ehegatten. Dieser * muss ungleich null sein. Eine Person kann * nicht sich selbst heiraten. Beide können * nur heiraten, wenn keiner von ihnen verheiratet * ist. */ public void heiraten(Person ehegatte) { if (this != ehegatte & this.ehegatte == null & ehegatte.ehegatte == null) { String nachname = ehegatte.nachname + "-" + this.nachname; ehegatte.nachname = nachname; this.nachname = nachname; this.ehegatte = ehegatte; ehegatte.ehegatte = this; } } /** * Diese Person und sein Ehegatte trennen sich wieder. */ public void scheiden() { if (ehegatte != null) { ehegatte.ehegatte = null; ehegatte = null; } } public Adresse getAdresse() { return adresse; } public int getAlter() { return alter; } public Person getEhegatte() { return ehegatte; } public String getNachname() { return nachname; } public String getVorname() { return vorname; } public void setAdresse(Adresse adresse) { this.adresse = adresse; } public void setAlter(int alter) { this.alter = alter; } public void setEhegatte(Person ehegatte) { this.ehegatte = ehegatte; } public void setNachname(String nachname) { this.nachname = nachname; } public void setVorname(String vorname) { this.vorname = vorname; } }