
객체 지향 (OOP, Object-Oriented Programming)은 프로그래밍 패러다임 중 하나로, 현실 세계의 사물이나 개념을 객체(object)라는 단위로 나누어서 이들 간의 상호작용을 프로그래밍하는 방법입니다. 대표적인 장점으로는 마치 고장 난 기계의 부품만 교체하면 되는 것처럼 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다는 점입니다. 객체 지향 프로그래밍의 4대 특징은
1. 추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것입니다. (추상 클래스, 인터페이스 등)
2. 상속 : 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 것, 상속된 하위 클래스는 상위 클래스의 속성과 기능들을 간편하게 사용 가능합니다.
3. 다형성 : 어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있습니다. 방식으로는 오버라이딩과 오버로딩이 있습니다. 나는 집에서 아들 학원에서는 학생
4. 캡슐화 : 클래스 안에 서로 연관 있는 속성과 기능들 및 데이터를 외부로부터 보호하는 것을 말합니다. 접근제어자 Private, public, Protected로 접근 범위를 지정합니다. (프로퍼티도 지정 가능)
[객체지향의 5원칙 (SOLID)]
SRP(Single Responsibility Principle): 단일 책임 원칙 : 클래스(객체)는 단 하나의 책임만 가져야 한다는 원칙 : 하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행한다. : 프로그램의 유지보수 성을 높이기 위한 설계 기법 . OCP(Open Closed Priciple): 개방 폐쇄 원칙 : 확장에 열려있어야 하며, 수정에는 닫혀있어야 한다 : 추상화 사용을 통한 관계 구축을 권장하는 의미 . LSP(Listov Substitution Priciple): 리스코프 치환 원칙 : 서브 타입은 언제나 부모 타입으로 교체 가능해야 한다. : 다형성의 원리를 이용하기 위한 원칙 . ISP(Interface Segregation Principle): 인터페이스 분리 원칙 : 인터페이스를 각각 사용에 맞게 잘게 분리해야한다는 설계 원칙 : 인터페이스의 단일 책임을 강조 . DIP(Dependency Inversion Principle): 의존 역전 원칙 : 어떤 클래스를 참조해야할 시 그 Class를 참조하는 것이 아닌 그 대상의 상위 요소로 참조하라는 원칙 (모노비헤이비어) : 쉽게 말해 추상 클래스 및 인터페이스에 의존하라는 것 : 자주 변화하는 것이 아닌 변화가 거의 없는 것에 의존하라는 것
출처: 💠-객체-지향-설계의-5가지-원칙-SOLID [Inpa Dev 👨💻:티스토리]