Hallo Leute,
wenn ich die Equals-Methode überschreibe, muss ich dies in allen Klassen tun wenn ich eine composition habe oder geht das noch einfacher bzw eleganter?
Konkret:
wieder alles einzeln über getter oder geht das auch irgendwie so, wie ich das hier versucht habe anzudeuten?
Danke und schönes Rest-Wochenende
wenn ich die Equals-Methode überschreibe, muss ich dies in allen Klassen tun wenn ich eine composition habe oder geht das noch einfacher bzw eleganter?
Konkret:
Java:
public class main_class {
public static void main(String[] args) {
Namensverwaltung namensverwaltungPerson1 = new Namensverwaltung("Herr", (float) 39.5);
Personen person1 = new Personen ("Hans", "Müller", namensverwaltungPerson1);
System.out.println(person1); //toString d. Objektes person1
Namensverwaltung namensverwaltungPerson2 = new Namensverwaltung ("Herr", (float) 32.0);
Personen person2 = new Personen ("Hans", "Müller", namensverwaltungPerson2);
PersonenAbgleich personenvergleich = new PersonenAbgleich(person1, person2);
System.out.println("Personengleichheit vorhanden: " + personenvergleich.equals(person1, person2));
}
}
public class Namensverwaltung {
private String anrede;
private float arbeitszeit;
public Namensverwaltung (String anrede, float arbeitszeit) {
this.anrede = anrede;
this.arbeitszeit = arbeitszeit;
}
//eigene Equals-Methode für anrede und arbeitszeit??
}
public class Personen {
private String vorname;
private String nachname;
private Namensverwaltung namensverwaltung;
public Personen (String vorname, String nachname, Namensverwaltung namensverwaltung) {
this.vorname = vorname;
this.nachname = nachname;
this.namensverwaltung = namensverwaltung;
}
public String getVorname() {
return vorname;
}
public String getNachname() {
return nachname;
}
}
public class PersonenAbgleich {
private Personen person1;
private Personen person2;
PersonenAbgleich (Personen person1, Personen person2) {
this.person1 = person1;
this.person2 = person2;
}
//equals-Methode
@override
boolean equals(Personen person1, Personen person2) {
//nachfolgende Abfrage scheitert am letzten Teil, wo ich die namensverwaltung direkt ansprechen möchte
if ( (person1.getVorname()).equals(person2.getVorname()) && (person1.getNachname()).equals(person2.getNachname()) && namensverwaltung.person1().equals(namensverwaltung.person2() ) {
return true;
}
else return false;
}
}
wieder alles einzeln über getter oder geht das auch irgendwie so, wie ich das hier versucht habe anzudeuten?
Danke und schönes Rest-Wochenende