캡슐상속
- 구성관계 : 부모의 기능을 물려 받는다는 의미, 상속이라고도 얘기할수 있다
- has a 관계 : 부품을 갖고와서 조립하는것
- 컴포지션 composition(구성) has a 관계 : 얘를 갖고 나를 구성하고 있다 (상속,일체형)
- 어쏘시에이션 association(연관) has a 관계 : 분리형(setter로 인자를 끼워줘야함)
- 컨스트럭터 constructor (생성자)
- 그림그릴때 + : public (+없으면 private)
- 일체형은 setter를 쓰지 않고 객체에서 불러온다
(일체형은 데이터를 바꿀수 없다는 단점이 있고, 장점은 상속형이라 안에 뭐가 있는지 일일이 신경 안써도 된다)
ExamConsole 생성시 Exam도 같이 생성된다. (ExamConsole이 new로 만들어질때 같이 쓸 Exam이 함께 생성된다)
ExamConsole console = new ExamConsole();
console.input();
public class ExamConsole {
private Exam exam;
public ExamConsole(){
this.exam = new Exam();
}
}
- 분리형은 setter를 쓴다 (오버로드도 분리형) 꽂아서 넣어주는 방식
분리형은 일체형과 다르게 Exam exam = new Exam(); 해서 exam객체를 생성해줘야만 한다
console.setExam(exam);과정은 setExam에 exam을 넣어준다는 의미
Exam exam = new Exam(); //부품생성
ExamConsole console = new ExamConsole();
console.setExam(exam);//조립
- 일체형,분리형은 상황에 맞게 선택해서 쓰면 된다
- DI (Dependency Injection 의존관계 주입) : 세팅이 되는 애를 부품으로 칭하는데 그것을 Dependency(의존) 이라고 한다
console.setExam(exam);//조립
여기서(exam)이 Dependency가 되는것이다. 인젝션은 꽂아넣다 의 의미다. 부품(디펜던시)+결합(인젝션)
- 어그리게이션 aggregation has a 상속(하얀마름모로 표현): 앞으로(향후에) 끌어모으겠다 필요한 부품들을?
- is a 상속 관계 : 부품이 아닌 틀을 가져와서 살짝 고치거나 추가해서 사용하는것 (확장으로도 표현한다)
- is a 상속 사용법은 calss에
public class NewlecExam extends Exam {
를 붙여주면 된다 (Exam을 기반 틀로 하여 수정하겠다 라는 의미)
- 기반이 되는것, 틀이 되는 애들을 프레임워크 라고 부른다