1. 객체지향 프로그래밍이란?
- C언어 같은 절차지향적 프로그래밍은 프로세스가 함수 단위로 순서대로 진행되는 반면, OOP는 객체들의 유기적인 관계를 통해서 프로세스가 진행된다.
2. 객체지향 프로그래밍(OOP) 특징
- 추상화, 캡슐화, 상속, 다형성
- 추상화 :
객체들의 공통된 특징을 파악하여 정의해 놓은 설계 기법이다.
ex) 하위클래스들에 존재하는 공통적인 함수들을 interface로 정의.
- 캡슐화 :
비슷한 역할을 하는 속성과 함수들을 하나의 클래스로 모은 것.
또한 캡슐 내부의 조직이나 변수들을 감추고 외부에는 기능만 제공하는 은닉성의 특징을 가진다.
- 상 속 :
코드의 중복을 줄이기 위해 존재한다. (재활용 가능)
즉, 코드의 이원화 문제를 해결한다.
상위클래스를 -> 하위 클래스에서 상속 받게 되면 상위의 멤버변수/함수를 물려받음.
- 다형성 :
같은 모양의 함수가 상황에 따라 다르게 동작한다.
ex) 오버로딩(함수 이름은 같고, 매겨변수가 다른 것), 오버라이딩(상위 -> 하위 클래스에서 재정의한다.)