[C++] 객체지향 프로그래밍이란 무엇인가?

 객체지향 기법이란? 

객체지향 기법은 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 기계적인 부품들을 조립하여 제품을 만들듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법입니다.

1. 객체 지향 기법은 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택되어 사용되고 있습니다.

2. 소프트웨어의 재사용 및 확장을 용이하게 함으로써 고품질의 소프트웨어를 빠르게 개발할 수 있으며 유지보수가 쉽습니다. 

3. 복잡한 구조를 단계적, 계층적으로 표현하고, 멀티미디어 데이터 및 병렬 처리를 지원합니다.

4. 현실세계를 모형화 하여 사용자와 개발자가 쉽게 이해할 수 있습니다.

5. 객체지향 기법의 구성요소에는 객체(Object), 클래스(Class), 메시지(Message)가 있습니다.

 

 객체(Object) 

객체는 데이터와 데이터를 처리하는 함수를 묶어 놓은(캢ㄹ화한 하나의 소프트웨어 모듈입니다.

 데이터  객체가 가지고 있는 정보로 속성이나 상태 분류등을 나타냅니다.
 속성(Attribute)< 상태, 변수, 상수, 자료구조라고도 합니다. 
 함수   객체가 수행하는 기능으로 객체가 갖는 데이터(속성, 상태)를 처리하는 알고리즘입니다.
 객체의 상태를 참조하거나 변경하는 수단이 되는 것으로 메소드(Method), 서비스(Service), 동   작(Operation), 연산이라고도 합니다.
 기존의 구조적 기법에서의 함수, 프로시저에 해당하는 연산 기능입니다. 

 

객체의 특성

1. 객체는 독립적으로 식별 가능한 이름을 가지고 있습니다. (Ex 자동차 번호판)

2. 객체가 가질수 있는 조건을 상태(Statue)라고 하는데, 일반적으로 상태는 시간에 따라 변합니다.

3. 객체와 객체는 상호 연관성에 의한 관계가 형성됩니다.

4. 객체가 반응할 수 있는 메시지(Message)의 집합을 행위라고 하며, 객체는 행위의 특징을 나타낼 수 있습니다.

5. 객체는 일정한 기억장소를 가지고 있습니다.

6. 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 수행됩니다.

 

 클래스(Class) 

1. 클래스는 공통된 속성과 연산(행위)을 갖는 객체의 집합으로 객체의 일반적인 타입(Type)을 의미합니다.

2. 클래스는 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀이라고 볼 수 있습니다.

3. 클래스에 속한 각각의 객체를 인스턴스(Instance)라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)이라고 합니다.

4. 동일 클래스에 속한 각각의 객체(인스턴스)들은 공통된 속성과 행위를 가지고 있으면서, 그 속성에 대한 정보가 서로 달라 동일 기능을 하는 여러가지 객체를 나타내게 됩니다.

5. 최상위 클래스는 상위 클래스를 갖지 않는 유일한 클래스입니다.

6. 슈퍼클래스(SuperClass)는 특정 클래스의 상위(부모) 클래스이고, 서브클래스는(SubClass)는 특정 클래스의 하위(자식) 클래스를 의미합니다.

 

 메시지(Message) 

1. 메시지는 객체들 간에 상호작용을 하는데 사용되는 수단으로, 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항입니다.

2. 인자는 옵션(Option), 즉 필요할 때만 사용합니다.

3. 메시지를 받은 수신 객체는 요구된 메소드(동작, 연산)을 수행하며 결과를 반환하게 됩니다.

 

메시지의 구성요소

1. 메시지를 받는 객체(수신자)의 이름

2. 객체가 수행할 메소드 이름

3. 메소드를 수행할 때 필요한 인자값

 

댓글

Designed by JB FACTORY