001    package de.hska.info1.objekte;
002    
003    import java.util.Date;
004    
005    /**
006     * Person mit Name und Geburtsdatum.
007     * 
008     * @author Christian Pape
009     */
010    public class Person {
011    
012            private String vorname = "";
013            private String nachname = "";
014            private Date geburtsdatum;
015            private Person ehegatte;
016            private Adresse adresse;
017            
018            public Person(String vorname, String nachname, Date geburtsdatum, Adresse adresse) {
019                    this.vorname = vorname;
020                    this.nachname = nachname;
021                    this.adresse = adresse;
022                    this.geburtsdatum = geburtsdatum;
023            }
024                    
025            public void heiraten(Person ehegatte) {
026                    if (this.ehegatte == null
027                                    && ehegatte.ehegatte == null
028                                    && ehegatte != null && ehegatte != this) {
029                            ehegatte.nachname = this.nachname + "-" + ehegatte.nachname;
030                            this.nachname = ehegatte.nachname;
031                            this.ehegatte = ehegatte;
032                            ehegatte.ehegatte = this;
033                    }
034            }
035    
036            public int getAlter() {
037                    return new Date().getYear() - geburtsdatum.getYear();
038            }
039    
040            public Date getGeburtsdatum() {
041                    return new Date(geburtsdatum.getTime());
042            }
043    
044            public Adresse getAdresse() {
045                    return adresse;
046            }
047    
048            public Person getEhegatte() {
049                    return ehegatte;
050            }
051    
052            public String getNachname() {
053                    return nachname;
054            }
055    
056            public String getVorname() {
057                    return vorname;
058            }
059            
060    }