객체 지향 프로그래밍(Object-Oriented Programming)은 데이터와 함수를 하나로 묶은 객체를 기반으로 하는 프로그래밍이다. ex) JAVA, Python
절차 지향 프로그래밍(Procedural Programming)은 프로시저를 기반으로 하는 프로그래밍이다. ex) C
무엇이 다른가?
1. 설계 방식
- 절차지향: 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식(Top Down)
- 객체지향: 자료 구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행 순서와 흐름을 조합하는 방식(Bottom Up)
2. 목적
- 절차지향: 실행 순서, 즉 절차가 더 중점이 된다.
- 객체지향: 객체들의 종류와 속성 등이 더 중점이 된다.
주의 할 점
- 객체 지향 프로그래밍도 '순차적'으로 처리된다.
- ~객체지향 != 절차지향, ~절차지향 != 객체지향
객체 지향 프로그래밍의 특징
1. 캡슐화
서로 관련된 데이터와 함수를 하나의 덩어리(객체)로 묶는다.
2. 상속
부모 클래스의 속성이 자식 클래스에게 상속된다.
3. 다형성
같은 이름의 메소드가 각 객체마다 다르게 동작한다.
ex) dog.speak() --> 멍멍 출력, cat.speak() --> 야옹 출력