Java
클래스 - 포함(Composite)관계
림디
2020. 3. 26. 12:00
반응형
클래스간의 포함관계를 맺어주는 것이란, 한 클래스의 멤버변수로 다른 클래스를 선언하는것을 말한다.
Ex//
class Car{
Enegine m_Engine = new Engine();
Tire[] m_Tier = new Tire[4];
}
Car 클래스의 단위 구성요소인 Engine과, Tire 같은 클래스를 미지 작성해 놓고 이들을 Car클래스의 멤버 변수로 선언하여 포함관계를 맺어주면, 클래스를 작성하는 것도 쉽고 코드도 간결해진다.
클래스관의 관계 결정하기
상속 관계를 맺어 줄 것인지, 포함관계를 맺어 줄 것인지 결정하는 방법
'~은 ~이다 (is-a)'와 '~은 ~을 가지고 있다(has-a)'를 넣어서 문장을 만들면 클래스간의 관계가 보다 명확해 진다.
상속 관계 - '~은 ~이다 (is-a)'
포함 관계 - '~은 ~을 가지고 있다(has-a)'
Ex//
자동차클래스는 엔진클래스를 가지고있다.
자동차클래스는 엔진클래스이다.
포르쉐클래스는 자동차클래스는이다.
포르쉐클래스는 자동차클래스를 가지고있다.