Quando un oggetto A contiene un riferimento ad un altro oggetto B o possiamo dire che l’oggetto A ha una relazione HAS-A con l’oggetto B, allora si parla di aggregazione.
L’aggregazione aiuta a riutilizzare il codice. L’oggetto B può avere metodi di utilità che possono essere utilizzati da più oggetti. Qualsiasi classe abbia l’oggetto B può utilizzare i suoi metodi.
Esempio
public class Vehicle{}public class Speed{}public class Van extends Vehicle { private Speed sp;}
Questo mostra che la classe Van ha una velocità. Avendo una classe separata per la velocità, non dobbiamo mettere l’intero codice che appartiene alla velocità all’interno della classe Van, il che rende possibile riutilizzare la classe Speed in più applicazioni.
Nella funzione orientata agli oggetti, gli utenti non devono preoccuparsi di quale oggetto sta facendo il vero lavoro. Per ottenere questo, la classe Van nasconde i dettagli di implementazione agli utenti della classe Van. Quindi, fondamentalmente ciò che accade è che gli utenti chiederebbero alla classe Van di fare una certa azione e la classe Van farà il lavoro da sola o chiederà ad un’altra classe di eseguire l’azione.Questo concetto di contenere un oggetto per fare l’azione è definito come Aggregazione.