# UML Komposition in Java Code



## kiril_valev (5. Dez 2008)

Hallo. Kann mir jemand sagen wie das in Code ausschauen würde? Ist mein Beispiel unten richtig?
Dankeschön!







```
public class Auto {
  private HashSet<Motor> motoren;

  public Auto(int anzahlMotoren) {
    motoren = new HashSet<Motor>();

    for(int i = 0; i <= anzahlMotoren; i++) {
      motoren.add(new Motor());
    }

  }
  
  public void setMotoren(HashSet<Motor> motoren) {
    this.motoren = motoren;
  }

  public HashSet<Motor> getMotoren() {
    return motoren;
  }
}
```


```
public class Motor {

}
```


----------



## mvitz (5. Dez 2008)

Schöner wären vermutlich noch Methoden wie addMotor und getMotor, wo du einen spezifierten Motor zurückbekommst.

Weiterhin wäre es etwas besser, wenn du

```
private Set<Motor> motoren;
```
benutzen würdest, da du in diesem Fall gegen ein Interface programmierst und anstelle von dem HashSet gegebenenfalls einfacher eine andere Implementierung von Set benutzen kannst.


----------



## maki (5. Dez 2008)

wenn ich

setMotoren(null);

aufrufe, habe ich dann ein gültiges Autoobjekt?

Selbiges gilt, wenn ich mit getMotoren das Set zurückbekomme und dieses leere.


----------



## kiril_valev (5. Dez 2008)

Ok danke. Aber es ist schon richtig, dass ein Motor "nicht weiß" in welchem Auto er sich befindet?


----------



## maki (6. Dez 2008)

Braucht er doch nicht imho, er gehört doch immer nur zu einem einzigen Auto.


----------

