Gdy obiekt A zawiera referencję do innego obiektu B lub możemy powiedzieć, że obiekt A ma relację HAS-A z obiektem B, wtedy jest to określane jako Agregacja.
Agregacja pomaga w ponownym użyciu kodu. Obiekt B może mieć metody użytkowe, które mogą być wykorzystane przez wiele obiektów. Którakolwiek klasa ma obiekt B wtedy może wykorzystać jego metody.
Przykład
public class Vehicle{}public class Speed{}public class Van extends Vehicle { private Speed sp;}
To pokazuje, że klasa Van HAS-A Speed. Mając osobną klasę dla Speed, nie musimy umieszczać całego kodu należącego do Speed wewnątrz klasy Van, co umożliwia ponowne użycie klasy Speed w wielu aplikacjach.
W funkcji Object-Oriented użytkownicy nie muszą się przejmować tym, który obiekt wykonuje prawdziwą pracę. Aby to osiągnąć, klasa Van ukrywa szczegóły implementacji przed użytkownikami klasy Van. Więc w zasadzie to, co się dzieje, to użytkownicy poprosiliby klasę Van o wykonanie pewnej akcji, a klasa Van albo wykona pracę samodzielnie, albo poprosi inną klasę o wykonanie akcji.Ta koncepcja zawierająca obiekt do wykonania akcji jest określana jako Aggregation.
.