프로그램을 실제 세상에 가깝게 모델링하는 기법이다. 프로그램을 객체들의 모임으로 구성하고, 객체들 간의 상호 작용을 통해 프로그램을 구현하는 프로그래밍 패러다임이다. 절차적 프로그래밍(예. C언어)에 비하여 생산성이 높다. OOP는 객체, 클래스인스턴스, 상속과 다형성