[C++] 객체지향 언어의 5가지 특징

객체지향 기법의 특징은 크게 5가지가 있습니다. 캡슐화, 정보은닉, 추상화, 상속성, 다형성이 바로 그것이며 이중 구조적 기법과 차별되는 개념은 캡슐화, 상속성, 다형성 입니다.

 

 객체지향 언어의 5가지 특징 

캡슐화(Encapsulation)

캡슐화는 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶은 것을 의미합니다.

1. 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급 효과가 적습니다.

2. 캡슐화된 객체들은 재사용이 용이합니다.

3. 객체들 간의 메시지를 주고받을 떄 각 객체의 세부 내용은 알 필요가 없으므로 인터페이스가 단순해지고, 객체간의 결합도가 낮아집니다.

 

정보은닉(Information Hiding)

캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것입니다.

1. 각 객체의 수정이 다른 객체에게 주는 영향을 최소화 하는 기술입니다.

2. 외부 객체가 특정 객체의 데이터와 함수를 직접 접근하여 사용하거나 변경하지 못하므로 유지보수와 소프트웨어 확장 시 오류를 최소화 할 수 있습니다.

 

추상화(Abstraction)

추상화는 풀필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는것, 즉 모델화를 하는 것입니다.

1. 인간이 복잡한 문제를 다루는 데 가장 기본이 되는 방법으로, 완전한 시스템을 구축하기전에 그 시스템과 유사한 모델을 만들어 여러가지 요인들을 테스트할 수 있습니다.

2. 추상화는 최소의 비용으로 실제 상황에 대처할 수 있고, 시스템의 구조 및 구성을 가시적으로 볼수있습니다.

 

상속성(Inheritance)

상속성은 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려받는것을 의미합니다.

1. 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용할 수 있습니다.

2. 하위 클래스는 상위 클래스로부터 상속받은 속성과 연산 외에 새로운 속성과 연산을 첨가하여 사용할 수 있습니다.

3. 상위 클래스의 속성과 연산을 하위 클래스가 공유할 수 있기 때문에 객체와 클래스의 재사용, 즉 소프트웨어 재사용을 증대시키는 중요한 개념이 됩니다.

 

※ 다중상속이란?

한 개의 클래스가 두개 이상의 상위 클래스로부터 속성과 연산을 상속받는 것을 말합니다.

 

다형성(Polymorphism)

다형성은 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법9특성)으로 응답할 수 있는 능력을 의미합니다.

1. 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 합니다.

2. 응용 프로그램 상에서 하나의 함수나 연산자가 두개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스처럼 수행할 수 있도록 하는것을 말합니다.

 

댓글

Designed by JB FACTORY