객체지향 프로그래밍이란, 프로그램을 객체로 정의해서 객체들끼리 의사소통할 수 있는 형태로 작업해 나가는 방법을 뜻한다. (절차 지향 반대되는 프로그래밍 방법론이다.)
관련된 오브젝트를 재사용하거나, 특정 오브젝트에서 문제가 생겼을 시 관련 있는 오브젝트만 수정하면 가능하기에 버그픽스와 재사용성에서 이점을 갖 있다. 새로운 기능이 필요하다면 새로운 오브젝트를 생성하면 되므로 확장성 또한 좋다.
생산성 높으며 신속한 기능 구현 및 추가, 효율적인 유지 보수를 가능케 한다.
Object 내 data, function들이 포함된다.
객체 내 데이터들을 fields 혹은 일반적으로 우리가 부르는 property라고 부른다.
클래스를 통해 인스턴스(객체)를 만들어 낼 수 있다.
Encapsulation(캡슐화)
관련 있는 데이터 및 함수들을 묶어서 한 덩어리로 만드는 것을 뜻한다.
외부에서 볼 필요가 없는 데이터를 숨김으로써 캡슐화를 진행한다.
Abstraction(추상화)
Inheritance(상속)
Polymorphism(다형성)