프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것
객체지향언어 = 프로그래밍언어 + 객체지향개념
-> 실제 세계를 프로그램화 하기 위해
실제로 존재하는 것
사물 또는 개념
객체 = 속성(변수) + 기능(메서드)
기존의 클래스로 새로운 클래스를 작성하는 것(중복 제거, 코드 재사용)
하나의 메서드, 혹은 클래스가 다양한 방법으로 동작하는 것(오버로딩, 오버라이딩)
여러 객체들 사이에서 공통적인 속성과 기능을 모아 상위의 클래스(객체)로 정의하는 것
데이터와 코드의 형태를 외부에서 알 수 없게 하고 데이터로의 접근을 막는다.