검색
색인
객체 지향 프로그래밍, 客體指向-, Object-Oriented Programming, OOP
실세계의 현상을 컴퓨터상에 객체로서 실현(모델화)함으로써 컴퓨터를 자연스러운 형태로 사용하여 다양한 문제를 해결하기 위한 프로그램 기법.
객체는 실체(데이터)와 그 실체와 관련되는 동작(절차, 방법, 기능)을 모두 포함한다. 기차역에서 승차권 발매의 예를 들면, 실체인 ‘손님’과 절차인 ‘승차권 주문’은 하나의 객체이고, 실체인 ‘역무원’과 절차인 ‘승차권 발매’도 하나의 객체이다. 어떤 과제를 처리하기 위하여 객체 간에는 메시지(지시)를 주고받는다. 메시지를 받은 객체는 동작(절차)을 실행한다. 코볼 L이나 베이식과 같은 기존의 프로그램에서는 동작과 절차를 중심으로 하고 실체(데이터)는 종속적으로 취급하였으나, 객체 지향 프로그램에서는 실체(데이터)와 동작(절차)을 객체로서 정의하고 객체 간의 메시지 교환에 주안점을 둔 정보 처리를 한다. 즉 객체 지향은 과정을 중시하는 절차 중심 설계가 아니고, 실체(데이터)를 중시하는 설계이다.
객체 지향 프로그램의 또 하나의 중요한 특징은 공통의 성질을 갖는 객체는 객체 등급으로 정의하는데 같은 등급에 속하는 객체들은 그들이 받는 메시지에 대하여 비슷하게 반응한다. 객체 등급을 계층화할 수 있는데 하위 계층의 객체 등급은 상위 등급의 성질과 기능을 계승한다. 따라서 객체 지향은 시스템의 모듈화 및 캡슐화를 촉진하여 복잡화/거대화되는 소프트웨어를 사용하기 쉽고, 작성하기 쉬우며 유지 보수하기 쉬운 방향으로 재구축하는 기법이다. 객체 지향 프로그램은 스몰토크(SmallTalk)와 같은 객체 지향 언어로 작성된다.