반응형
포함관계
한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것
하나의 거대한 클래스를 작성하는 것보다 단위별로 여러 개 클래스를 작성해 포함관계로 재사용하면 보다 간결하고 손쉽게 클래스를 작성할 수 있다
클래스간의 관계 결정하기
클래스를 작성하는데 있어서 상속관계를 맺을지, 포함관계를 맺을지 혼란스러울 수 있는데,
그럴 때는 '~은 ~이다(is - a)'와 '~은 ~을 가지고 있다(has - a)'문장에 대입해 보면 클래스간의 관계가 명확해진다
예시)
|
1
2
3
4
5
|
class Circle {
int x;
int y;
int r;
}
|
cs |
|
1
2
3
4
|
class Point {
int x;
int y;
}
|
cs |
Circle클래스와 Point클래스를 예로, (is - a), (has - a)관계를 알아보자
(is - a) 상속관계
|
1
2
3
|
class Circle extends Point {
int r;
}
|
cs |
(has - a) 포함관계
|
1
2
3
4
|
class Circle {
Point p = new Point();
int r;
}
|
cs |
'아카이브 > 자바의 정석' 카테고리의 다른 글
| 7장 20200925 (0) | 2020.09.25 |
|---|---|
| 7장 20200924 (0) | 2020.09.24 |
| 6장 객체지향프로그래밍(2) 20200919 (0) | 2020.09.19 |
| 6장 객체지향프로그래밍 20200918 (0) | 2020.09.18 |
| 5장 배열 20200917 (0) | 2020.09.17 |