![#00BCD4]
Object-Oriented Programming은 객체의 관점에서 프로그래밍을 한다는 것이다.
따라서 프로그램을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말한다.
object is an entity with a well-defined boundary and identity that encapsulates states(attributes) and behavior(operations).
No one objects can carry out every responsibilities on its own,
Objects are useful only when they can collaborate to solve the problem.
객체는 대상을 나타내는 단어이며 실제로 존재하는 데이터를 의미한다.
한 객체는 고유의 status와 behavior를 가지게 되며 각각의 객체들은 message 를 통해 상호작용하게 된다.
공장에서 나오는 인형 하나하나의 상태, 고유번호가 다르듯이,
같은 생김새를 가지고 있다 하더라도 그 하나하나를 객체라 할 수 있다.
Objects are instance of a class.
Class is abstract definition of an object.
공통적인 속성(state & behavior)들을 가진 object들을 정의내린 것을 class 라고 한다.
object들의 template 역할을 한다.
흔히들 class는 '붕어빵 틀', object는 '붕어빵'으로 비유한다.
붕어빵 틀에 여러가지 앙금을 넣어서 붕어빵을 만들게 되면, 다양한 붕어빵을 만들 수 있다.
이 때, 붕어빵 틀처럼 object를 만들 때 사용하는 것을 class,
팥, 슈크림 등 앙금들은 객체의 특징들은 attribute 가 된다.
Communication between Objects
객체를 사용하는 방법으로, 객체에 명령을 내리는 메시지이다.