티스토리 뷰

Java/JAVA의 정석_객체지향

포함(Composite)

Jenny_yoon 2022. 10. 30. 22:12
728x90
반응형

1) 특징

- 클래스의 멤버로 참조변수를 선언하는 것

class Circle {
    int x; //원점의 x좌표
    int y; //원점의 y좌표
    int r; //원점의 r좌표
 }

-> 위 예시를 포함으로 변환시

class Circle {
    Point c = new Point(); //원점
    int r; //반지름
}

class Point {
    int x;
    int y;
}

2) 클래스 간의 관계 결정하기

- 상속관계 : ~은 ~이다. (class Circle extends Point{} )

- 포함관계 : ~은 ~을 가지고 있다. (Point c = new Point ();)

ex.

원은 점을 가지고 있다(o) (포함관계)

원은 점이다(x) (상속관계)

 

3) 포함예시

package ch6;

class MyPointt{
	int x;
	int y;
}

class Circleee { //포함
	MyPointt p = new MyPointt(); //참조변수 초기
	int r; 
}



public class CompositeTest {
	public static void main(String[] args) {
		Circleee c = new Circleee();
		c.p.x=1;
		c.p.y=2;
		c.r=3;
		System.out.println(c.p.x);
		System.out.println(c.p.y);
		System.out.println(c.r);
	}

}

4) 상속예시

package ch6;
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;
		System.out.println("c.x="+c.x);
		System.out.println("c.y="+c.y);
		System.out.println("c.r="+c.r);
	}
}
728x90
반응형

'Java > JAVA의 정석_객체지향' 카테고리의 다른 글

Super VS Super()  (0) 2022.10.31
오버라이딩(Overriding)  (0) 2022.10.30
상속(Inheritance)  (0) 2022.10.30
참조변수 this VS this()  (0) 2022.10.26
constructor(생성자)  (0) 2022.10.26
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday