객체 지향(Object-Oriented Programming) 설계와 특징에 대해 기록한 페이지입니다.
◆ SOLID 원칙 : 객체지행 프로그래밍의 5가지 설계 원칙
1. 단일 책임 원칙(SRP, Single Responsibility Principle)
-> 하나의 모듈은 하나의 책임을 가져야 한다는 원칙
2. 개방 폐쇄 원칙(OCP, Open Closed Principle)
-> 확장은 열려있고, 수정은 닫혀있어야 한다는 원칙
3. 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
-> 하위 타입은 상위 타입을 대체할 수 있어야 한다는 원칙
4. 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
-> 용도에 맞는 인터페이스를 적절하게 분리해야 한다는 원칙
5. 의존성 역전(DIP, Dependency Inversion Principle)
-> 고수준 모듈은 저수준 모듈의 구현에 의존해선 안되며, 저수준 모듈이 고수준 모듈에 의존해야 한다는 원칙
◆ OOP의 4대 특징 : 객체 지향 프로그래밍의 4가지 특징
1. 추상화
-> 공통적이고 본질적인 특징을 추출하여 정의한 것
2. 상속
-> 기존에 구현한 클래스를 재활용하여 구현할 수 있는 것
- Is-A 관계 : 상속의 관계이며 abstract 를 사용하고 코드의 재사용이 목적
- Has-A 관계 : 포함의 관계이며 interface 를 사용하고 코드의 확장이 목적
3. 다형성
-> 객체의 속성이나 기능이 상황에 따라 여러 형태로 변할 수 있는 것(Overriding, Overloading)
4. 캡슐화
-> 클래스 내의 연관된 속성이나 함수를 하나의 캡슐로 묶어 외부로부터 클래스의 접근을 최소화 하는 것(접근제한자)
- public : 하위 클래스와 인스턴스에 접근 가능.
- static : 클래스 외부에서 접근 가능. 인스턴스는 접근 불가
- private : 클래스 본인만 접근 가능.
- protected : 클래스 본인, 하위 클래스에서만 접근 가능.
- default : 동일한 패키지 내에서만 접근 가능.
※ private < default < protected < public
감사합니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 디자인 패턴 종류 (0) | 2024.05.20 |
---|---|
[Java] 이분탐색 예제 (0) | 2024.05.13 |
[Java] JVM GC 프로세스 (0) | 2024.05.13 |
[Java] Enum 활용 (0) | 2023.07.14 |
[Java] Stream 사용법 (0) | 2023.07.07 |