본문 바로가기

Java/기본

[Java] 객체지향101 - 객체지향프로그래밍(Object Oriented Programming)이란?

객체 지향 프로그래밍(Object Oriented Programming)이란
말 그대로 객체을 중심으로 프로그램을 짜는것을 말한다.
보통 객체지향 프로그래밍을 하면 인간의 사고방식대로 프로그래밍을 하기 때문에 직관적인 코딩이 가능하다고 한다.
이게 무슨 이야기일까?

여기서 잠깐 객체의 개념부터 알아보자.

객체(Object)란 실생활에 물리적으로 존재하거나 사고를 통해 개념적으로(추상적으로) 떠올릴 수 있는 것(thing)을 말한다.

예를 들어 호랑이, 책상, 철수와 영희, 계산기, 자동차, 편의점 등 우리가 떠올릴 수 있는 것 그리고
사랑, 역사, 헌법, 교통질서, 대통령선거 등 형태가 없지만 개념적으로 존재하는 모든 것이 객체가 된다.


객체의 구성

객체는 속성과 기능으로 이루어진다.

예를들어 호랑이라는 객체는 송곳니, 가로줄무늬 등 속성을 지니고, '잡아먹는다' 라는 기능(역할)을 한다

속성(특성) 성격 attribute field
기능(역할, 동작) 함수 function method

 

 

객체 지향을 하는 이유

우리의 사고방식은 객체라는 개념을 토대로 세상을 인식하는데 익숙하다.
책상이라는 객체에서 물건을 올려둘 수 있는 기능을 
자동차라는 객체에서 드라이브라는 기능을 인식하고
연인이라는 사람(객체)에서 사랑이라는 역할(기능)을 인식한다.

때문에 절차를 중심으로 프로그램을 구성하는 것보다 익숙한 방식으로 코딩이 가능하다.

 


절차적 프로그래밍(Procedural Programming)

절차 즉 순차적인 처리를 중심으로 프로그래밍을 하는것을 말한다
여기서 주의할 것은 절차적 프로그래밍과 객체지향 프로그램이 결코 반대말이 아나라는 것이다.
객체지향도 당연히 순서대로 수행된다. 이를 거슬러 수행될 수 없다.
단 무엇을 중심으로 코드가 진행되는가에 방점이 찍힌다.


절차 지향 프로그래밍은 프로그램이 진행되는 순서 중심으로 코드가 진행된다
객체 지향 프로그래밍은 프로그램이 진행되는데 필요한 객체들을 설정하고,

각 객체에 있어야 하는 기능을 중심으로 코드가 진행된다


위에서 강조한대로 객체 지향 프로그래밍에서 중요한 것은 바로 기능이다.
객체 지향 프로그래밍의 장점을 살리는 방법은 바로 기능을 중심으로 코딩을 하는 것이 된다.