반응형
포함관계 - 상속 이외에도 클래스를 재사용하는 방법
방식 - 한 클래스의 멤버 변수로다른 클래스 타입의 참조 변수를 선언하는 것을 뜻한다.
class Circle {
int x, y, z;
// 각각의 좌표 변수를 생성했다고 가정하자.
}
class Point {
int x, y;
}
이처럼 Point 클래스는 이미 x와 y좌표를 가지고 있다.
그렇다면 Circle 클래스가 Point 클래스의 x와 y좌표 멤버 변수를 사용할 수는 없을까?? (상속 제외)
방법이 물론 있다.
class Circle {
Point c = new Point(); // 원점;
int r;
}
// 위와 같이 포인트 클래스의 객체를 만들어 x, y좌표를 생성하여 사용할 수 있다.
이처럼 포함관계를 하던 상속관계를 하던 이상하지 않은 상황은 이런 식으로 구별을 하면 된다.
Circle(원)은 Point(점)이다. - Circle is a Point (상속)
Circle(원)은 Point(점)을 가지고 있다 - Circle has a Point (포함)
이처럼 클래스를 가지고 문장을 만들었을 때 '. -은 ~이다'라는 문장이 성립한다면,
서로 상속관계를 맺어주고 '~은 ~을 가지고 있다'는 문장이 성립한다면 포함관계를 맺어주면 된다.
예를 들어 Car 클래스와 SportsCar 클래스는 'SportsCar는 Car이다.'와 같이 문장을 만드는 것이 더 옳기 때문에 이 두 클래스는 Car 클래스를 조상으로 하는 상속관계를 맺어 주어야 한다.
또한. Card 클래스와 Deck 클래스는 'Deck'은 Card를 가지고 있다. 와 같이 문장을 만드는 것이 더 옳기 때문에 Deck 클래스에 Card클래스를 포함시켜야 한다.
* 프로그램의 모든 클래스를 분석하여 가능한 많은 관계를 맺도록 노력해서 코드의 재사용성을 높여야 한다.
반응형
'언어 공부 > JAVA' 카테고리의 다른 글
Java의 5대 핵심 개념과 예시로 알아보는 자바 프로그래밍 (0) | 2023.11.24 |
---|---|
JAVA/innerClass (0) | 2022.05.17 |
JAVA/DTO test code (0) | 2022.05.15 |
JAVA/상속관계, 포함관계 (0) | 2022.05.15 |
JAVA/생성자 (0) | 2022.05.11 |
최근댓글