집계는 HAS-A 관계를 나타냅니다. 먼저 예를 살펴보겠습니다 -
예
public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }
이것은 Van HAS-A Speed 클래스를 보여줍니다. Speed에 대해 별도의 클래스를 가짐으로써 속도에 속하는 전체 코드를 Van 클래스에 넣을 필요가 없으므로 여러 애플리케이션에서 Speed 클래스를 재사용할 수 있습니다.
객체 지향 기능에서 사용자는 실제 작업을 수행하는 객체에 대해 신경 쓸 필요가 없습니다. 이를 달성하기 위해 Van 클래스는 Van 클래스의 사용자에게 구현 세부 정보를 숨깁니다. 따라서 기본적으로 발생하는 일은 사용자가 Van 클래스에게 특정 작업을 수행하도록 요청하고 Van 클래스는 자체적으로 작업을 수행하거나 다른 클래스에게 작업을 수행하도록 요청하는 것입니다.
작업을 수행할 개체를 포함하는 이러한 개념을 집계라고 합니다.