객체
세상은 객체들의 모임으로 볼 수 있습니다.
사전적 의미로는 의사나 행위가 미치는 대상을 나타냅니다
구체적 또는 추상적 데이터의 단위로 학생, 회원, 생산, 주문, 배송 등으로 예를 들 수 있습니다.
객체 지향? 절차 지향?
그럼 객체 지향이란 무엇인가? 자판기를 예로 들어 보겠습니다.
- 절차 지향
- 시간이나 사건의 흐름에 따라갑니다
- 돈을 넣는다 -> 물건을 고른다 -> 해당 물건의 버튼을 누른다 -> 물건이 나온다 -> 잔돈 반환 버튼을 누른다 -> 잔돈을 반환한다.
위와 같은 시간이나 사건의 흐름에 따라 프로그래밍을 하는 것을 절차 지향 프로그래밍이라고 합니다.
- 객체 지향
정확한 표현이라고는 생각하지 않지만 각 객체간의 협력이 일어납니다. 사용자가 자판기에서 물건을 사기 위해 소유하고 있는 돈을 제공하고 제공받은 자판기는 사용자가 바라는 물건을 돌려줍니다.
객체 지향 프로그램의 구현
- 객체를 정의합니다. (모델링)
- 각 객체가 제공하는 기능들을 구현합니다.
- 각 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통하여 객체간의 협력을 구현합니다.