현실 세계의 현상을 컴퓨터상에 객체(Object)로 모델화함으로써, 컴퓨터를 자연스러운 형태를 사용하여 여러 가지 문제를 해결할 수 있는 프로그래밍 언어
- 절차적 언어에 비해 특히 유지보수성(Maintainability) 과 재사용성(Reusability) 우수
- 종류 : Ada, Smalltalk, C++, Java 등
구성 요소
구성 요소 | 설명 |
---|---|
객체(Object) |
|
클래스 (Class) |
|
메시지 (message) |
|
특징
- 캡슐화(Encapsulation) : 데이터와 메소드를 클래스 하나로 묶어, 객체 내부에서 필요로 하는 정보를 외부로부터 은닉시키고, 매소드를 통한 접근을 제공한다.
- 추상화(Abstraction) : 자료 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것이다.
- 상속(Inheritance) : 이미 정의되어 있는 상위 클래스와 메소드를 비롯한 모든 속성을 하위 클래스가 물려받는 것이다
- 다형성(Polymorphism) :다형성 개념이란 어떤 한 요소에 여러 개념을 넣어 놓는 것으로 일반적으로 오버라이딩(같은 이름의 메소드가 여러 클래스에서 다른 기능을 하는 것)이나 오버로딩(같은 이름의 메소드가 인자의 갯수나 자료형에 따라서 다른 기능을 하는 것)을 의미한다. 다형성 개념을 통해서 프로그램 안의 객체 간의 관계를 조직적으로 나타낼 수 있다.