Hey Daniel,
danke für die schnelle Antwort. Hab noch mal über deine Anmerkungen nachgedacht.
1. Der Klasse Mieter ein Attribut Wohnung zuweisen, macht natürlich Sinn. Hab mich nur gewundert, warum in der Klasse Wohnung der Attribut Mieter vorhanden ist. Ich meine, bei allen anderen Assoziationen und Aggregationen sind die Attribute gleich an den Verbindungslinien vermerkt.
2. **fehlerteufel**:nudelholz:
3. Methode mietberechnung() in Klasse Hausverwaltung hab ich nun anders implementiert.
Zur Methode mietberechnung() für Mehrfamilienhaus und Hausverwaltung noch eine Frage: Ich muss immer den Umweg über die ketSet() gehen, also mir aus den Keys der Map ein Set mit allen Keys erstellen lassen, und das Set dann mit einer for-Schleife einzeln durchgehe??
Folgendes ist nämlich nicht möglich (Eclipse streikt da bei whngen):
public Integer mietberechnung(){
Integer sum = 0;
for (Wohnung w: whngen){
sum = sum + w.getMiete();
}
}
4. Nein, Mieter als Values wären wohl besser. Also
private Map miet.
Und die Sache mit der Klasse Mietvertrag als Assoziationsklasse würd' ich so lösen, dass die Klasse Hausverwaltung das Attribut
private Map mietvertraege bekommt, und die Klasse Mietvertrag das schon genannte
private Map miet.
Damit kennt die Hausverwaltung all ihre Mietverträge, jeder Mietvertrag kennt seine Mieter, und die Hausverwaltung kennt damit (über die Mietverträge) die Mieter. Ich würde der Klasse Mieter auch noch ein Attribut Mietvertrag zuweisen und der Klasse Mietvertrag ein Attribut Hausverwaltung, denn ich versteh das im Beispiel bei Wiki
http://de.wikipedia.org/wiki/Assoziationsklasse so, dass das alles ungerichtete Assoziationen sind. Ich bin mir aber nicht sicher, ob das programmiertechnisch sinnvoll ist!?
Also, ich denke/hoffe, ich habe bis auf die Einbeziehug diese Assoziationsklasse soweit alles einigermaßen verstanden :happy: