JAVA/CLASS

언어 공부/JAVA / / 2022. 5. 11. 02:22
반응형
포함관계 - 상속 이외에도 클래스를 재사용하는 방법

 

방식 - 한 클래스의 멤버 변수로다른 클래스 타입의 참조 변수를 선언하는 것을 뜻한다. 

 

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기