객체 Object
프로그래밍에서의 객체란 구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 )
어떤 액션이 일어나는, 어떤 기능을 수행하는 데이터의 단위.
여러가지 명사들을 객체라고 생각하면 쉽다. (물체, 동작 등)
눈에 보이는 물체가 아닌 동작을 나타내는 주문, 생산, 관리, 통계 같은 것도 또한 객체가 될 수 있다.
객체 지향 프로그램과 절차 지향 프로그래밍
예) 아침에 일어나 학교를 가는 과정
절차 지향 프로그래밍
- 시간의 흐름에 따른 프로그래밍
- C언어
일어나서 -> 씻고 -> 밥먹고 -> 버스타고 -> 요금 지불하고 -> 학교에 도착
객체 지향 프로그래밍
- 객체가 따로 존재한다.
- C++, C#, Python, JavaScript
학생 <-> 밥 : 먹는다
학생 <-> 버스 : 탄다
학생 <-> 학교 : 간다
객체 지향을 실생활에 적용해보면 우리 각자(개인)를 객체로 생각하고 다른 사람, 물건과 상호작용(interaction)하고 있는 것과 비슷하다.
객체 지향 프로그램은 어떻게 구현하는가?
- 객체를 정의하고
- 각 객체가 제공하는 기능들을 구현하고
- 각 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통하여 객체간의 협력을 구현
- 메세지 전달, 협력이란 : 파라미터를 넘겨준다거나 객체가 넘어간다는 것.
객체 지향이란 실생활에 있는 구체적이고 추상적인 것을 코드화 해서 표현하는 작업이다.