객체는 클래스가 아니다.
객체에게 역할(책임)을 주는 것, 그리고 협력하게 만드는 것.
객체는 Type으로 구분한다.
1) 캡슐화
기존의 캡슐화는 은닉(보호)로만 생각했는데 객체의 완성도를 위해서도 캡슐화가 필요하다.
2) 상속
상속의 오해: 공통된 기능을 묶는 것이 아님.
점점 더 구체화 시키는 것.
3) 추상화
의미적 추상, abstract, interface가 있음
4) 다형성
type을 여러가지로 표현할 수 있다.
다형성을 통해 한 객체에서도 접근하는 방향에 따라 다른 기능을 제공할 수 있음.
이를 통해 다시 캡슐화가 진행된다.
객체 지향적으로 설계한 것을 잘 설명하기위해서는? UML -> Class Diagram
UML적 표현을 숙지한다.
툴 : https://draw.io
객체지향을 잘할려면?
SOLID 5원칙
->이 5가지 원칙의 공통점들을 묶은 것 = 디자인 패턴
디자인 패턴을 공부한다.