일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 항해99
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 다중 catch 블록
- try-catch-finally 블록
- 99클럽
- 코딩테스트준비
- 일반 예외
- throws 키워드
- 예외
- 실행 예외
- 개발자취업
- 예외클래스
- 예외 처리
- til
Archives
- Today
- Total
innn
포함 관계(Composite, has-a, 90%가 포함 관계!!) 본문
클래스의 관계는 크게 두 가지로 나뉜다.
1. 상속
2. 포함
포함이란?(Composite)
- 클래스의 멤버로 참조변수를 선언하는 것.
왼쪽은 저장공간이 xyr 세 개다.
오른쪽 역시 저장공간은 xyr로 세개다.(r위의 객체 c는 x,y의 주소번지를 갖고 있기때문에 저장공간이 아니다.)
두 경우 저장공간은 동일하지만 구조만 다른셈이다.
클래스 간의 관계를 결정할때
언제 상속하고 언제 포함할까?
가장 간단한 방법은 문장을 만드는 것이다.
is a 관계면 상속 관계
has a 관계는 포함 관계다.
원은 점이다
원은 점을 가지고 있다.
어느 문장이 더 자연스러울까 ? 두번째다.
사실, 대부분의 경우는 포함이다. (90퍼센트) 상속은 조건이 까다롭기 때문
생성된 객체를 메모리를 그림으로 그려보는 것이 설계에 중요하다.
상속과 다르게 포함관계에 있는 객체는 참조변수를 한 번더 적어준다. (당연함 그 객체를 거쳐온 변수이기 때문)
상속은 이미 명시돼있지 않더라도 그 객체 안에 포함되어있기 때문에 참조변수가 하나 뿐인 것이다.
'JAVA > 자바의 정석 기초편_남궁성(2020)' 카테고리의 다른 글
생성자 this() 와 참조변수 this (0) | 2022.07.06 |
---|---|
단일 상속, Object 클래스 (0) | 2022.07.06 |
상속관계 (0) | 2022.07.06 |
생성자(Constructor) (0) | 2022.06.26 |
오버로딩(Overloading) (0) | 2022.06.25 |