Når et objekt A indeholder en reference til et andet objekt B, eller vi kan sige, at objekt A har et HAS-A-forhold til objekt B, kaldes det for aggregering.
Aggregering hjælper med at genbruge koden. Objekt B kan have nyttemetoder, som kan udnyttes af flere objekter. Uanset hvilken klasse der har objekt B, kan den anvende dens metoder.
Eksempel
public class Vehicle{}public class Speed{}public class Van extends Vehicle { private Speed sp;}
Dette viser, at klassen Van HAS-A Speed. Ved at have en separat klasse til Speed behøver vi ikke at lægge hele den kode, der hører til Speed, ind i Van-klassen, hvilket gør det muligt at genbruge Speed-klassen i flere applikationer.
I den objektorienterede funktion behøver brugerne ikke at bekymre sig om, hvilket objekt der udfører det egentlige arbejde. For at opnå dette skjuler Van-klassen implementeringsdetaljerne for brugerne af Van-klassen. Så det, der grundlæggende sker, er, at brugerne beder Van-klassen om at udføre en bestemt handling, og Van-klassen vil enten selv udføre arbejdet eller bede en anden klasse om at udføre handlingen.Dette koncept med at indeholde et objekt til at udføre en handling betegnes som Aggregation.