절차지향과 객체지향의 차이점에 대해 살펴보자.
1. 절차 지향과 객체 지향은 반대 개념이 아니다.
- 프로그램은 기본적으로 위에서 아래로 실행되는 절차적인 흐름을 가진다.
- 지향한다는 단어는 코딩하는 방식과 방법론의 차이로, 자바로는 절차지향 프로그래밍을 할 수 없다는 의미가 아니다.
- 절차적 프로그래밍은 데이터를 중심으로 함수를 만들어 순차적으로 처리하고, 객체지향 프로그래밍은 데이터와 기능(함수)들을 묶은 객체를 만들어 객체간의 관계와 상호작용으로 처리한다.
- 어떠한 언어든 절차 지향적 프로그래밍을 할 수 있으며, 그 중 객체 지향 언어인 자바는 객체 지향 프로그래밍을 위해 캡슐화, 다형성, 상속, 접근 제한을 지원한다.
2. 객체(Object)
- 객체지향에서의 객체란 현실세계의 사물을 있는 그대로 모델링하여 행위(Method)와 속성(Field)를 정의한다.
- 자바에서는 클래스파일(.class)을 통해 객체를 설계할 수 있다.