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//

자동차클래스는 엔진클래스를 가지고있다.

자동차클래스는 엔진클래스이다.

 

포르쉐클래스는 자동차클래스는이다.

포르쉐클래스는 자동차클래스를 가지고있다.