Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용한 객체 지향 프로그래밍의 기본 개념

<시간/>

객체 지향 프로그래밍은 객체를 사용하고 그 기능을 클래스화하는 프로그래밍 유형입니다. 객체 지향 프로그래밍은 상속, 다형성, 데이터 은닉 등과 같은 실제 개체를 기반으로 합니다. 이러한 데이터 세트에 대한 데이터 및 기능 작업을 단일 개체로 결합하여 사용을 제한하는 것을 목표로 합니다.

객체 지향 프로그래밍의 몇 가지 기본 개념은 다음과 같습니다. -

  • 클래스
  • 객체
  • 캡슐화
  • 다형성
  • 상속
  • 추상

수업 - 클래스는 자신의 멤버, 즉 데이터 멤버와 멤버 함수를 갖는 데이터 유형입니다. 객체 지향 프로그래밍 언어의 객체에 대한 청사진입니다. C++에서 객체 지향 프로그래밍의 기본 빌딩 블록입니다. 클래스의 멤버는 클래스의 인스턴스를 만들어 프로그래밍 언어로 액세스할 수 있습니다.

클래스의 몇 가지 중요한 속성은 다음과 같습니다. -

  • 수업 사용자 정의 데이터 유형입니다.

  • 클래스에는 데이터 멤버 및 멤버 함수와 같은 멤버가 포함됩니다.

  • 데이터 구성원 클래스의 변수입니다.

  • 회원 기능 데이터 멤버를 조작하는 데 사용되는 방법입니다.

  • 데이터 멤버는 클래스의 속성을 정의하는 반면 멤버 함수는 클래스의 동작을 정의합니다.

클래스에는 모든 개체에 대해 공통적인 속성과 동작을 가진 여러 개체가 있을 수 있습니다.

구문

class class_name {
   data_type data_name;
   return_type method_name(parameters);
}

개체 − 객체는 클래스의 인스턴스입니다. 객체 지향 프로그래밍에서 사용되는 특성과 동작을 가진 엔터티입니다. 개체는 메모리를 할당하기 위해 생성된 엔터티입니다. 정의된 클래스에는 객체가 생성되자마자 할당될 메모리 청크 자체가 없습니다.

구문

class_name object_name;

예시

#include<iostream>
using namespace std;
class calculator {
   int number1;
   int number2;
   char symbol;
   public :
   void add() {
      cout<<"The sum is "<<number1 + number2 ;
   }
   void subtract() {
      cout<<"The subtraction is "<<number1 - number2 ;
   }
   void multiply() {
      cout<<"The multiplication is "<<number1 * number2 ;
   }
   void divide() {
      cout<<"The division is "<<number1 / number2 ;
   }
   calculator (int a , int b , char sym) {
      number1 = a;
      number2 = b;
      symbol = sym;
      switch(symbol){
         case '+' : add();
            break;
         case '-' : add();
            break;
         case '*' : add();
            break;
         case '/' : add();
            break;
         default : cout<<"Wrong operator";
      }
   }
};
int main() {
   calculator c1(12 , 34 , '+');
}

출력

The sum is 46

캡슐화 객체 지향 프로그래밍에서 캡슐화는 데이터와 정보를 단일 단위로 묶는 개념입니다. 캡슐화에 대한 공식적인 정의는 다음과 같습니다. 캡슐화는 데이터와 데이터를 조작할 수 있는 관련 기능을 결합하는 것입니다.

쉬운 실생활 예를 들어 주제를 이해합시다.

우리 대학에는 컴퓨터 과학, 정보 기술과 같은 각 과정에 대한 부서가 있습니다. , 전자 등 각 부서에는 추적하고 가르치는 자체 학생과 과목이 있습니다. 각 부서를 해당 부서의 학생들과 가르칠 과목에 대한 데이터를 캡슐화하는 클래스로 생각합시다. 또한 학과에는 타이밍, 학습하는 동안 사용되는 방법 등과 같은 코스에서 학생들이 따라야 하는 몇 가지 고정 규칙과 지침이 있습니다. 이것은 실생활에서의 캡슐화이며 데이터가 있고 데이터를 조작하는 방법이 있습니다.

객체 지향 프로그래밍의 캡슐화 개념으로 인해 또 다른 매우 중요한 개념이 가능합니다. 바로 데이터 추상화 또는 데이터 은닉입니다. 캡슐화하면 표시해야 하는 정보만 표시할 때 데이터를 숨길 수 있습니다.

다형성 이름은 다형성이 여러 형태임을 정의합니다. 이는 다형성이 여러 형식을 사용하여 일부 작업을 수행하는 객체 지향 프로그래밍의 능력임을 의미합니다. 메서드의 동작은 메서드가 호출되는 유형이나 상황에 따라 다릅니다.

실생활의 예를 들어 보겠습니다. 사람은 상황에 따라 두 가지 이상의 행동을 할 수 있습니다. 여자처럼 엄마, 매니저, 딸그리고 이것이 그녀의 행동을 정의합니다. 이것이 다형성의 개념이 나온 곳입니다.

C++ 프로그래밍 언어에서 다형성은 두 가지 방법으로 달성됩니다. 연산자 오버로딩과 함수 오버로딩입니다.

연산자 과부하 연산자 오버로딩 및 연산자는 사용의 다른 인스턴스에서 여러 동작을 가질 수 있습니다.

함수 오버로딩 조건에 따라 여러 유형을 수행할 수 있는 동일한 이름의 함수입니다.

상속 다른 클래스의 속성이나 특성을 상속하거나 파생시키는 클래스의 기능입니다. 상속을 사용하여 다른 클래스에 정의된 메서드를 사용하여 재사용이 가능하므로 매우 중요하고 객체 지향적인 프로그램입니다. 다른 클래스에서 속성을 파생시키는 클래스를 자식 클래스 또는 하위 클래스라고 하고 속성을 상속받는 클래스를 기본 클래스 또는 부모 클래스라고 합니다.

C plus plus 프로그래밍 언어는 다음 유형의 상속을 지원합니다.

  • 단일 상속
  • 다중 상속
  • 다단계 상속
  • 계층적 상속
  • 하이브리드 상속

추상화 데이터 추상화 또는 데이터 은닉은 데이터를 숨기고 최종 사용자에게 관련 데이터만 표시하는 개념입니다. 또한 중요한 부분 객체 지향 프로그래밍입니다.

개념을 더 잘 이해하기 위해 실제 예를 들어 보겠습니다. 자전거를 탈 때 브레이크를 밟으면 자전거가 멈추고 스로틀을 돌리면 가속된다는 것만 알지만 작동 방식을 모르고 우리가 알아야 한다고 생각하지도 않습니다. 이것이 개념 데이터 추상화와 동일한 방식으로 수행되는 이유입니다.

C 플러스 플러스 프로그래밍 언어에서 데이터 추상화를 달성할 수 있는 두 가지 방법을 작성하십시오 -

  • 클래스 사용
  • 헤더 파일 사용