객체지향 프로그래밍이란?
객체 / 지향 / 프로그래밍를 나눠서 의미를 분석해보자.
객체란, 현실에서 존재하거나 생각할 수 있는 모든 것이다. 객체는 속성과 기능으로 구성되어 있다.
지향이란, '향하다'라는 의미로, 객체지향은 객체를 중심으로 한다는 뜻이다.
프로그래밍이란, 컴퓨터에게 특정 작업을 수행하도록 지시하는 일이다.
따라서 "객체지향 프로그래밍"은 "객체를 중심으로 한 방식으로 프로그래밍하는 것"이다.
우리가 살아가는 일상생활이 객체지향이라고 볼 수 있다.
A가 B에게 꽃을 전달하고 싶다.
A는 꽃에 대한 전문적인 지식이나, 택배 경로에 대한 전문적인 지식이 필요하지 않다.
꽃집이라는 객체와, 택배사라는 객체를 사용하기 때문이다.
객체지향 프로그래밍의 장점
- 블록(레고) 형태의 모듈화된 프로그래밍
- 추가/수정/삭제가 용이
- 재 사용성이 높음
💡 블록 형태라고 하는 이유
객체지향 프로그래밍은 블록을 조립할 때, 두 블록이 잘 끼워지는지 고민하지 않고, 그냥 바로 끼우는 것과 비슷하다.
그래서 블록을 끼웠다 뺐다 하면서 추가/수정/삭제가 용이하고, 잘 만들어진 블록은 재사용을 할 수 있다.
객체지향 프로그래밍의 특징
OOP is A P.I.E
특성 | 내용 |
Abstraction(추상화) | 현실의 객체를 추상화 해서 클래스를 구성한다. |
Polymorphism(다형성) | 하나의 객체를 여러 가지 타입(형)으로 참조할 수 있다. |
Inheritance(상속) | 부모 클래스로 부터 물려받아 자식을 정의함으로 코드의 재사용이 가능하다. |
Encapsulation(데이터 은닉과 보호) | 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. |