프로그램을 객체로 구성하는 것. 프로그램이 거대화하며 등장했다.
어떻게 큰 프로그램을 만들 것인가? → 작게 객체로 나눠서 만들고 합친다는 개념이다.
프로그램의 동작을 객체들에게 나눠서 수행시킨다.
작은 기능을 수행하고, 객체끼리 서로 협력한다. 객체는 type
으로 구분한다. type
은 일반 자료형뿐만 아니라, 생성한 class
도 해당한다.
의 특징을 갖는다.
객체는 스스로 동작 가능해야하므로, 외부에 의존 or 접근을 제한할 필요가 있다.
공통된 기능을 여러 객체에게 전달하고 싶다는 목적은 오해이다.
추상적인 대상을 구체화하고 싶을 때 사용한다.
상위가 항상 하위보다 추상적이어야 한다.
위를 통해 얻을 수 있는 것으로, 다양한 type
으로 표현 가능하다.
오버라이딩 / 오버로딩으로 다형성 구현 가능.
UML 통해 설명 가능 (클래스 다이어그램…)