포함 관계

essential·2023년 7월 16일

객체 지향

목록 보기
17/40

포함(composite)이란?

  • 클래스의 멤버로 참조변수를 선언하는 것
  • 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다.
int Circle { 
	Point c = new Point(); // 원점
	int r; // 반지름 (radius)
}

class Point {
	int x;
	int y;
}

// Circle 이 Point 를 포함 관계 
class Car { 
	Engine e = new Engine(); // 엔진
	Door[] d = new Door[4]; // 문, 문의 개수를 넷으로 가정하고 배열로 처리했다.

//포함 관계

클래스 간의 관계 결정하기

상속 관계

  • ~은 ~이다 (is-a)
class Circle extends Point {
	int r;
}

포함관계

  • ~은 ~을 가지고 있다. (has-a)
class Circle {
	point c = new Point();
	int r;
}

ex Point 상속

class MyPoint {
	int x;
	int y;
}

class Circle extends MyPoint { //상속
	int r;
}

public class InheritanceTest {
	public static void main(String[] args) {
		Circle c = new Circle();
		c.x = 1;
		c.y = 2;
		c.r = 3;
}

ex Point 포함

class MyPoint {
	int x;
	int y;
}

class Circle { // 포함 
	MyPoint p = new MyPoint(); // 참조 변수의 초기화
	int r;
}

public class InheritanceTest {
	public static void main(String[] args) {
		Circle c = new Circle();
		c.p.x = 1;
		c.p.y = 2;
		c.r = 3;
}
profile
essential

0개의 댓글