컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.
객체지향 프로그래밍의 요소들로는 캡슐화, 추상화, 다형성, 상속이 있다.
대표 언어로는 java, ruby, python, c++, objective-c 등이 있다.