객체 지향 프로그래밍과 절차 지향 프로그래밍은 서로 대치되는 개념이 아닌
어디에 초점을 두느냐에 따라 차이가 있다.
절차 지향
- 실행 순서를 중요시 하는 방식
- 프로그램의 흐름을 순차적으로 따르고 처리하는 방식, 즉 "어떻게"를 중심으로 프로그래밍을 한다.
- 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다.
객체 지향
- 객체를 중요하게 생각하는 방식
- 현실의 사물 또는 사건을 객체로 보고, 객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식 "무엇을" 중심으로 프로그래밍 한다.
- 객체 지향에서는 데이터와 데이터에 대한 행동(메서드)이 하나의 "객체" 안에 포함되어 있다.
객체란 무엇인가?
모든 사물을 단순하게 추상화해보면 속성(데이터)과 기능 2가지로 설명할 수 있다.
ex) 자동차
- 속성 : 차량 색상, 현재 속도, 문 갯수 등
- 기능 : 엑셀, 브레이크, 문 열기,닫기 , 와이퍼
동물
- 속성 : 색상, 키, 온도
- 기능 : 먹는다, 걷는다
게임 캐릭터
- 속성 : 레벨, 경험치, 아이템
- 기능 : 이동, 공격, 아이템 획득
모든 사물을 속성과 기능을 가진 객체로 생각하는 것이다. 객체는 속성과 기능만 존재한다. 단순화하면 세상에 있는 객체들을 컴퓨터 프로그램으로 쉽게 설계할 수 있다.
