객체지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임 중 하나로, 객체들 간의 상호작용을 중심으로 코드를 구성하는 방법론이다.
클래스는 객체를 생성하기 위한 틀이며, 객체는 클래스를 기반으로 만들어진 구체적인 인스턴스이다.
객체지향 프로그래밍의 원칙에는 SOLID 원칙이 있다.
- 단일 책임 원칙(Single Responsibility Principle)
한 클래스는 하나의 책임만 가져야 한다.
- 개방 폐쇄 원칙(Open Closed Principle)
확장에는 열려있으나 변경에는 닫혀있어야한다.
- 리스코프 치환 원칙(Liskov Substitution Principle)
하위 타입(자식)은 언제나 자신의 상위 타입(부모)으로 교체할 수 있어야 한다.
- 인터페이스 분리 원칙(Interface Segregation Principle)
클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않아야 한다.
- 의존관계 역전 원칙(Dependency Inversion Principle)
객체들 간의 협력 하는 과정에서 의존 관계가 형성 된다.
객체지향 프로그래밍의 키워드
- 클래스(Class)
- 객체(Object)
- 상속(Inheritance)
- 다형성(Polymorphism)
- 캡슐화(Encapsulation)