포함(composite)
- 클래스의 멤버로 참조변수를 선언하는 것
- 작은 단위의 클래스를 만들고 이들을 조합해서 클래스를 만든다
클래스 간의 관계 결정하기
상속관계 ~은 ~이다(is-a)
포함관계 ~은 ~을 가지고 있다(has-a)
대부분 90%이상 포함관계로 만들면 된다
원(circle)은 점(point)이다 circle is a point (x)
원(circle)은 점(point)을 가지고 있다 circle has a point (o)
public class Oop20_composite {
public static void main(String[] args) {
//c,c2 객체가 만들어지는 과정 그림으로 그려서 이해하자
Circle c = new Circle();
c.x =1;
c.y =2;
c.r =3;
Circle2 c2 = new Circle2();
c2.c.x = 1;
c2.c.y = 2;
c2.r = 3;
}
}
class Point2{
int x;
int y;
}
class Circle extends Point2{ //상속관계
int r;
}
class Circle2{//포함관계
Point2 c = new Point2();//참조변수 초기화
int r;
}