Aggregation หมายถึงความสัมพันธ์แบบ HAS-A มาดูตัวอย่างกันก่อน −
ตัวอย่าง
public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }
นี่แสดงว่าคลาส Van HAS-A Speed การมีคลาส Speed แยกกัน เราไม่จำเป็นต้องใส่โค้ดทั้งหมดที่เป็นของ speed ไว้ในคลาส Van ซึ่งทำให้สามารถใช้คลาส Speed ซ้ำได้ในหลายแอปพลิเคชัน
ในคุณลักษณะเชิงวัตถุ ผู้ใช้ไม่จำเป็นต้องกังวลว่าวัตถุใดกำลังทำงานอยู่ เพื่อให้บรรลุสิ่งนี้ คลาส Van จะซ่อนรายละเอียดการใช้งานจากผู้ใช้คลาส Van ดังนั้น โดยพื้นฐานแล้ว สิ่งที่เกิดขึ้นคือผู้ใช้จะขอให้คลาส Van ดำเนินการบางอย่าง และคลาส Van จะทำงานด้วยตัวเองหรือขอให้คลาสอื่นดำเนินการ
แนวคิดในการมีออบเจกต์ที่ต้องทำเรียกว่า Aggregation