객체 지향 프로그래밍(OOP, Object Oriented Programming)이란 컴퓨터 언어를 사용하여 코드를 작성하고 구조화하는 다양한 방법 중 하나이다. 데이터와 코드를 묶어내는 캡슐화(encapsulation), 불필요한 정보를 숨기는 정보 은닉(information hiding), 동일한 메시지라도 맥락에 따라 다르게 작동하도록 하는 다형성(polymorphism)을 핵심 원리로 삼는 “객체”라는 추상화 단위를 도입한 것이 핵심적 특성이다.

객체 지향 프로그래밍 언어

객체 지향 언어 또는 객체 지향 프로그래밍 언어는 객체 지향 프로그래밍의 개념들을 쉽게 표현할 수 있도록 설계된 언어들을 말한다. 스몰토크, 자바, C++, Objective C, 파이선, 루비 등이 널리 쓰인다.

객체 지향 언어를 쓰면 객체 지향 프로그래밍을 하기에 수월한 것은 사실이지만, 꼭 객체 지향 언어를 써야만 객체 지향 프로그래밍을 할 수 있는 것은 아니다. 유사하게, 객체 지향 언어를 쓴 모든 코드가 저절로 객체 지향적 코드가 되는 것도 아니다.