OOP(Object-Oriented Programming, 객체 지향 프로그래밍)

OOP(객체 지향 프로그래밍)
- 프로그램 설계 철학
- 모든 것이 객체로 그룹화
- 재사용 용이
OOP 특징
- 클래스 : 세부 사항이 들어가지 않은 청사진.
객체
를 만들기 위한 생성자 함수
포함
- 인스턴스 : 클래스의
사례
- 사람이 세계를 보고 이해하는 방법과 유사
캡슐화
- 데이터와 기능을 하나의 단위로 묶음
- 구현은 숨기고 동작은 노출 => 은닉(내부 데이터나 내부 구현이 외부로 노출되지 않도록 만드는 것)
- 느슨한 결합에 유리 => 언제든 구현 수정 가능
- 코드가 복잡하지 않게 만들고 재사용성을 높인다.
추상화
- 내부 구현은 복잡하지만 실제 노출되는 부분을 단순하게 만든다
- 코드 복잡도를 줄인다
- 인터페이스를 단순화 할 수 있다 => 변화에 대한 영향 최소화
- 추상화 vs 캡슐화
- 추상화: 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법
- 캡슐화: 코드나 데이터의 은닉
상속
- 부모 클래스(기본 클래스)의 특징을 자식 클래스(파생 클래스)가 물려받는 것
- 기본적인 클래스에 속성/메소드를 추가하는 것
- 불필요한 코드를 줄여 클래스 재사용에 용이
다형성
- 같은 형태이지만 다른 기능을 하는 것
- 동일한 메소드에 대해 조건문 대신 객체의 특성에 맞게 달리 작성할 수 있다