JAVA

포함 관계(composition)

jiyoon12 2025. 4. 25. 00:05
  • 한 클래스가 다른 클래스를 포함하는 관계이다.
  • has-a" 관계로도 알려져 있으며, 객체 간의 강한 연관성을 나타낸다.
  • 하나의 객체가 다른 객체 없이는 의미가 없을 때 사용한다.
package com.composition;

public class Engine {

    String name;
    int price;

    void start(){
        System.out.println("엔진이 시작됩니다.");
    }

    void stop(){
        System.out.println("엔진을 멈춥니다.");
    }
}
package com.composition;

public class Car {

    String name;
    int price;
    // 포함 관계(컴포지션)
    // Car  클래스는 Engine  객체를 포함 합니다.
    Engine engine;

    public Car(){
        // 자동차 객체가 생성될 때 엔진 객체도 함께 생성 된다.
        // 강한 의존성
        engine = new Engine();
    }

    void startCar(){
        engine.start(); // car 객체를 통해 engine 의 start() 메서드를  호출합니다
        System.out.println("자동차가 출발합니다.");

    }

    void stopCar(){
        engine.stop();
    }

    // 테스트 코드 작성
    public static void main(String[] args) {
        // **컴포지션 관계를**
        //자동차 클래스 내부에서 엔진 객채를 생성 시켜야 컴포지션 관계이다.
        Car car = new Car();
        car.startCar();
        car.stopCar();
    }
}

'JAVA' 카테고리의 다른 글

연관 관계(association)  (0) 2025.04.25
포함 관계 연습문제  (0) 2025.04.25
상속을 활용한 Customer 코드 만들기  (0) 2025.04.25
상속을 활용한 Hero 코드 만들기  (0) 2025.04.25
상속과 오버라이드  (0) 2025.04.25