-
객체 지향 프로그래밍의 특징 및 원칙Java 2023. 7. 22. 16:27728x90
[특징]
1. 상속(Inheritance)
- 상위(부모) 클래스의 속성 및 기능을 하위(자식) 클래스가 물려받는 것
- 상위 클래스의 속성 및 기능들을 하위 클래스에서 그대로 사용하거나 오버라이딩(재정의)하여 사용
- 인터페이스를 통한 구현은 반드시 인터페이스에 정의된 추상 메서드의 내용이 하위 클래스에서 정의되어야 함
2. 추상화(Abstraction)
- 객체의 공통적인 속성 및 기능을 도출하여 정의
3. 캡슐화(Encapsulation)
- 클래스 안의 연관된 속성 및 기능들을 하나의 캡슐로 만들어 데이터를 은닉하고 보호하는 것
-> 접근 제어자
4. 다형성(Polymorphism)
- 한 객체가 다양한 타입을 가질 수 있는 것 (오버라이딩, 오버로딩)
[원칙 - SOLID]
1. SRP(Single Responsibility Principle) : 단일 책임 원칙
- 객체는 하나의 책임만 가져야 한다는 원칙
2. OCP(Open Closed P~) : 개방 폐쇄 원칙
- 기존 코드를 변경하지 않고 기능을 추가할 수 있도록 설계하는 원칙
3. LSP(Liskov Substitution P~) : 리스코프 치환 원칙
- 자식 클래스는 부모 클래스에서 가능한 행위를 수행할 수 있어야 한다는 원칙
-> 부모 타입 객체를 자식 타입 객체로 치환해도 정상 동작해야 한다는 의미
4. ISP(Interface Segregation P~) : 인터페이스 분리 원칙
- 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
5.DIP(Dependency Inversion P~) : 의존 역전 원칙
- 객체 간 의존 관계가 성립할 때 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙
728x90반응형