컴퓨터 프로그래밍의 패러다임 중 하나.
프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위 "객체"들의 모임으로 표현
각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있음.
대규모 소프트웨어 개발에 사용
프로그래밍을 배우기 쉽고
소프트웨어 개발과 보수가 간편
직관적인 코드 분석
절차 지향식에 비해 처리 시간이 오래 걸림
프로그래밍 방식
클래스의 인스턴스 (실제 메모리상에 할당된 것). 객체는 자신 고유의 속성(attribute)을 갖고 클래스에서 정의된 행위(behavior)를 수행할 수 있음.