När ett objekt A innehåller en referens till ett annat objekt B eller när vi kan säga att objekt A har ett HAS-A-förhållande till objekt B kallas det för aggregering.
Aggregering hjälper till att återanvända koden. Objekt B kan ha användningsmetoder som kan användas av flera objekt. Den klass som har objekt B kan använda dess metoder.
Exempel
public class Vehicle{}public class Speed{}public class Van extends Vehicle { private Speed sp;}
Detta visar att klassen Van HAS-A Speed. Genom att ha en separat klass för Speed behöver vi inte lägga hela koden som tillhör Speed i Van-klassen, vilket gör det möjligt att återanvända Speed-klassen i flera tillämpningar.
I den objektorienterade funktionen behöver användarna inte bry sig om vilket objekt som utför det egentliga arbetet. För att uppnå detta döljer Van-klassen implementeringsdetaljerna för Van-klassens användare. Så vad som händer är att användarna ber Van-klassen att utföra en viss åtgärd och Van-klassen kommer antingen att utföra arbetet själv eller be en annan klass att utföra åtgärden.Det här konceptet med att innehålla ett objekt för att utföra en åtgärd kallas Aggregation.