더 나은 프로그램을 만들기 위한 프로그래밍 패러다임이다. 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 객체들을 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라 할 수 있다.
객체란 서로 연관된 변수와 함수를 그룹핑한 그릇이라고 할 수 있다. 객체 내의 변수를 프로퍼티(속성), 함수를 메소드라고 한다.
웹페이지라는 프로그램을 예로 들면 하나의 객체 안에는 그 객체가 갖고 있는 취지 또는 기능과(본문, 댓글 등) 연관되어 있는 변수나 메소드를 객체 안에 두는 것이고 서로 연관성이 없는 다른 로직과 구분해주는 것(부품화, 그루핑)이다.
메소드는 부품화의 예라고 할 수 있다. 메소드를 사용하는 기본적인 취지는 메소드들을 부품으로 하여 하나의 완제품인 독립된 프로그램을 만드는 것이다. 중복적으로 사용되는 것을 메소드를 사용하여 처리하면 코드의 양을 극적으로 줄일 수 있고, 메소드별로 기능이 분류되어 있어서 필요한 코드를 찾기 쉬워지며, 문제의 진단도 빠르게 할 수 있다.
객체지향 프로그래밍을 하기 위해서는
1. 문법; 언어가 제공하는 기능을 익히는 것. 문법을 이해하고 숙지해야 객체를 만들 수 있다.
2. 설계; 좋은 객체를 만드는 법이다. 좋은 설계는 현실을 잘 반영해야한다.