OOP 는 객체지향 프로그래밍을 말한다. 사람이 직관적으로 프로그램을 이해하기 쉽고, 유지보수를 용이하게 한다.
객체는 다른 객체와 협력하는 역할을 맡고 있는 대상이다.
역할을 맡으면 임무를 수행할 책임이 생기고, 책임을 다하기 위한 데이터와 프로세스를 가지고 있다.
협력이란 시스템 목표를 달성하기 위해 여러 객체가 참여하여 행동하는 것이다.
책임은 협력 속에서 본인이 수행해야 할 임무의 내용을 알고 수행하는 것이다.
역할은 동일한 목적을 가진 책임의 묶음이다.
객체는 메시지를 통해 다른 객체에 책임을 다하라고 요구하지만, 뭘 할지만 요구하고 어떻게 하는지는 신경쓰지 않는다.