|
|
|
|
객체지향프로그래밍이란
|
|
|
|
객체 지향 프로그래밍이란
바이바이 구조화, 웰컴 객체 지향
70년대와 80년대는 구조화된 프로그래밍의 전성시대였다. 즉, 프로그램을 상위 구조와 하위구조의 피라미드식 계층 구조로 설계하여 각 구조의 단위를 함수로 구성하면서, C에서의 struct와 같은 복합된 자료 구조를 가질 수 있게 해 주었다. 이러한 개념은 커다란 작업을 작은 당위로 재구성하여 각개 격파를 할 수 있게 하여 각광을 받았으나, 복잡해진 현대의 컴퓨터 환경에서는 이 방법만 가지고는 훌륭한 프로그램을 제한된 시간 내에 완성하고, 환성된 프로그램을 유지 보수하거나 작성된 코드를 재사용하는 것이 많이 힘들어지게 되었다. 그래서 등장한 것이 흔히 OOP라고 불리우는 객체 지향 프로그래밍 기법이다.
객체(Object)란 C++에서는 클래스로 통한다. 즉, 스스로 데이터와 정의된 동작을 포함하는 프로그램 내의 하나의 요소를 지칭하는 것이다. 이상적인 객체는 그 스스로 생명력을 가져야 한다. 즉, 좋은 객체란 외부의 도움 없이도 스스로 동작을 할 수 있는 독립된 물체를 말한다. 예를 들어, 전기 세탁기는 잘 정의된 좋은 객체에 속한다. 빨랫감과 물, 세제만 있다면 그 객체 고유의 목적, 즉 세탁을 하려는 사람이 빨래를 넣고 스위치만 틀어 주면 알아서 빨래를 해주는 능력을 가지고 있다. 반면에 빨래판과 빨래 방망이는 좋은 객체라 할 수 없다. 빨래하는 사람, 즉, 외부에서 끊임없이 무엇인가를 해 주어야 한다. 정의된 기능이 없고 빨래하는 사람은 한시도 쉴 틈이 없다. 이 경우 차라리 개울에서 빨래하는 아줌마가 오히려 좋은 객체이다.
객체 지향 프로그램이 되려면 다음과 같은 중요한 개념이 포함되어야 한다. 먼저 큰 작업을 덜 복잡한 작은 작업처럼 보이게 하기 위하여 꼭 알 필요가 없는 자질구레한 세부사항을 단순한 개념으로 변형시킴으로써 더 중요한 사물의 본직에 신경을 쓸 수 있도록 해 준다.
.... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|