객체 지향 프로그래밍(Object Oriented Programming)이란
말 그대로 객체을 중심으로 프로그램을 짜는것을 말한다.
보통 객체지향 프로그래밍을 하면 인간의 사고방식대로 프로그래밍을 하기 때문에 직관적인 코딩이 가능하다고 한다.
이게 무슨 이야기일까?
여기서 잠깐 객체의 개념부터 알아보자.
| 객체(Object)란 실생활에 물리적으로 존재하거나 사고를 통해 개념적으로(추상적으로) 떠올릴 수 있는 것(thing)을 말한다. |
예를 들어 호랑이, 책상, 철수와 영희, 계산기, 자동차, 편의점 등 우리가 떠올릴 수 있는 것 그리고
사랑, 역사, 헌법, 교통질서, 대통령선거 등 형태가 없지만 개념적으로 존재하는 모든 것이 객체가 된다.
객체의 구성
객체는 속성과 기능으로 이루어진다.
예를들어 호랑이라는 객체는 송곳니, 가로줄무늬 등 속성을 지니고, '잡아먹는다' 라는 기능(역할)을 한다
| 속성(특성) | 성격 | attribute | field |
| 기능(역할, 동작) | 함수 | function | method |
객체 지향을 하는 이유
우리의 사고방식은 객체라는 개념을 토대로 세상을 인식하는데 익숙하다.
책상이라는 객체에서 물건을 올려둘 수 있는 기능을
자동차라는 객체에서 드라이브라는 기능을 인식하고
연인이라는 사람(객체)에서 사랑이라는 역할(기능)을 인식한다.
때문에 절차를 중심으로 프로그램을 구성하는 것보다 익숙한 방식으로 코딩이 가능하다.
절차적 프로그래밍(Procedural Programming)
절차 즉 순차적인 처리를 중심으로 프로그래밍을 하는것을 말한다
여기서 주의할 것은 절차적 프로그래밍과 객체지향 프로그램이 결코 반대말이 아나라는 것이다.
객체지향도 당연히 순서대로 수행된다. 이를 거슬러 수행될 수 없다.
단 무엇을 중심으로 코드가 진행되는가에 방점이 찍힌다.
| 절차 지향 프로그래밍은 프로그램이 진행되는 순서를 중심으로 코드가 진행된다 객체 지향 프로그래밍은 프로그램이 진행되는데 필요한 객체들을 설정하고, 각 객체에 있어야 하는 기능을 중심으로 코드가 진행된다 |
위에서 강조한대로 객체 지향 프로그래밍에서 중요한 것은 바로 기능이다.
객체 지향 프로그래밍의 장점을 살리는 방법은 바로 기능을 중심으로 코딩을 하는 것이 된다.
'Java > 기본' 카테고리의 다른 글
| [Java] 예외처리 - 예외(Exception)란 (0) | 2021.06.17 |
|---|---|
| [Java] 객체지향 - 추상화와 인터페이스 (0) | 2021.06.12 |
| [Java] 객체지향 - 상속 (0) | 2021.06.12 |
| [Java] 객체지향 - 접근제한자(Access Modifier) (0) | 2021.06.11 |
| [Java] 객체지향 - 객체지향의 특징 (0) | 2021.06.11 |