객체지향 4가지 특징
1. 추상화
- 불필요한 부분을 제거함으로서 필요한 핵심만 남겨놓는 것
- 일반화, 단순화
- 이를 사용하는 이유의 목적은 복잡성을 낮추기 위해 사용
2. 다형성
- 다양한 형태를 가지고 있는 것
- 하나의 타입으로 여러 종류의 객체를 참조하는 것
3. 캡슐화
- 객체의 내부의 세부사항을 외부로 부터 감추는 것
- 인터페이스만 공개해서 변경하기 쉬운 코드를 만들기 위함
4. 상속
객체지향의 5가지 설계 원칙(SOLID)
1.SRP : Single Responsibility Principle (단일 책임의 원칙)
2. OCP : Open/Closed Principle (개방 폐쇄의 원칙)
3. LSP : Liskov’s Substitution Principle (리스코프 치환의 원칙)
- 상위 타입의 객체를 하위 타입의 객체로 변형해도 문제가 없어야 한다.
4. ISP : Interface Segregation Principle (인터페이스 분리의 원칙)
- 많은 기능을 가진 인터페이스를 작은 단위로 분리시킴으로써 클라이언트에게 필요한 인터페이스들만 구현하도록 하는 것
5. DIP : Dependency Inversion Principle (의존성 역전의 원칙)
- 의존관계를 맺을때 자주 변경되는 쪽이 아니라 자주 변경되지 않는 쪽에 의존하는 것