/ JAVAJUNGSUK

Ch7-2~3. 포함

자바의 정석 기초편

0. 목차



Chapter7. 객체지향 프로그래밍Ⅱ

Ch7 - 3. 클래스 간의 관계 - 포함관계

Ch7 - 4. 클래스 간의 관계 결정하기



Ch7 - 3. 클래스 간의 관계 - 포함관계


▶ 포함(composite)이란?

▷ 클래스의 멤버로 참조변수를 선언하는 것
▷ 작은 단위의 클래스를 만들고, 이들을 조합하여 클래스를 만듦
class Car {
  Engine e = new Engine(); // 엔진
  Door[] d = new Door[4]; // 문, 문의 개수를 넷으로 가정하고 배열로 처리
}

엔진이나 도어 클래스를 만들어 포함시켜 사용함으로 복잡도↓

▶ 원을 그리는 두가지 방법


▷ 클래스만 사용
class Circle {
    int x;
    int y;
    int r;
}
  • 객체로 만들었을 때
      Circle c = new Circle();
    


▷ 포함 사용
class point {
    int x;
    int y;
}

class Circle {
    point c = new Pint();
    int r;
}
  • 객체로 만들었을 때
      Circle c = new Circle();
    


▶ 실습

▷ 상속으로 원의 중심과 반지름 출력
class point {
	int x;
	int y;
}

class Circle extends point {
	int r;
}

class Act {
	
	public static void main(String[] args) {

		Circle c = new Circle();
		
		c.x = 1;
		c.y = 2;
		c.r = 3;
		
		System.out.printf("원의 중심 : (%d, %d)\n", c.x, c.y);
		System.out.printf("반지름 : %dcm" ,c.r);
	}
}

// console
원의 중심 : (1, 2)
반지름 : 3cm
▷ 포함으로 원의 중심과 반지름 출력
class point {
	int x;
	int y;
}

class Circle {
	Point p = new Point();
	int r;
}

class Act {
	
	public static void main(String[] args) {

		Circle c = new Circle();
		
		c.p.x = 1;
		c.p.y = 2;
		c.r = 3;
		
		System.out.printf("원의 중심 : (%d, %d)\n", c.p.x, c.p.y);
		System.out.printf("반지름 : %dcm" ,c.r);
	}
}

// console
원의 중심 : (1, 2)
반지름 : 3cm



Ch7 - 4. 클래스 간의 관계 결정하기


▶ 상속관계

▷ A는 B이다(is)


▶ 포함관계

▷ A는 B를 가지고 있다(has)
  • 원은 점이다 : X
  • 원은 점을 가지고 있다 : O → 포함
    class Circle {
    Point c = new Point();
    int r;
    } 
    
90%는 포함관계로 사용, 상속은 제약이 많기 때문에 꼭 필요할 때만 사용