Aggregation and composition in Java

I usually forget the differences between the composition and the aggregation relationships and mix them together, so here is a memento that i will share with everyone.

  • Composition : a filled diamond
  • Aggregation : an unfilled diamond

The relation between a car and a tyre is an aggregation because the tyre is still a tyre if it is not attached to a car. The tyre has a life of its own. It exists outside of a car and you can use it on another car.

The relation between a car and a carburetor is a composition because the carburetor has no use if it is out of a car.

Aggregation and composition in Java

Now more interesting is the implementation in Java of these 2 relationships :

Aggregation :

class Car {


}

class Tyre {

private  car = new Car();


}

Composition :

class Carburetor {


}

class Car{
Carburetor  carburetor = null ;
public void setCarburetor( Carburetor  carburetor )
{
this.carburetor = carburetor;
}


}