encapsulation c
C ++ 캡슐화의 전체 개요 :
이전 튜토리얼에서 추상화에 대해 자세히 논의했습니다. 아시다시피 추상화는 사용자에게 구현 세부 정보를 숨기고 사용자에게 필요한 인터페이스 만 표시합니다.
이 튜토리얼에서는 OOP의 또 다른 중요한 기능, 즉 캡슐화에 대해 설명합니다. 추상화와 캡슐화는 함께 진행됩니다. 사실 캡슐화 된 코드가 추상화에 도움이된다고 말할 수 있습니다. 즉, 캡슐화와 추상화가 밀접하게 결합되어 있습니다.
=> 전문가의 전체 C ++ 과정을 보려면 여기를 방문하십시오.
따라서 캡슐화와 추상화 사이에 매우 얇은 선이 있으므로이 두 개념을 함께 논의 할 수 있습니다.
.bin 파일이란?
학습 내용 :
캡슐화 란?
데이터 캡슐화는 외부 간섭 및 오용으로부터 보호되도록이 데이터에서 작동하는 데이터와 기능 또는 방법을 단일 단위로 결합하는 프로세스를 의미합니다.
이것은 중요한 객체 지향 프로그래밍 개념이며 ''로 알려진 또 다른 OOP 개념으로 이어집니다. 데이터 숨김 ”. 캡슐화는 데이터와 해당 멤버를 숨기는 반면 추상화는 필요한 세부 정보 또는 인터페이스 만 외부 세계에 노출합니다.
어떤면에서 추상화는 숨겨진 데이터의 '추상적 인보기'를 외부 세계에 제공합니다. 따라서 우리는 이미 캡슐화와 추상화가 함께 진행된다는 진술을했습니다.
C ++의 클래스는 데이터 멤버와 이러한 데이터 멤버에서 작동하는 함수를 private, public 및 protected와 같은 액세스 지정자와 함께 묶어 캡슐화를 나타내는 클래스입니다. 클래스 및 객체에 대한 이전 자습서에서 이미 액세스 지정자에 대해 논의했습니다.
또한 기본적으로 클래스 멤버는 비공개라는 것을 알고 있습니다. 클래스 멤버를 private로 선언하고 클래스 멤버에 public으로 액세스하는 메서드를 선언하면 실제로 캡슐화를 구현하는 것입니다. 동시에 우리는 공개 방법의 형태로 외부 세계에 데이터의 추상적 인 관점을 제공합니다.
vr box 용 최고의 vr 앱
캡슐화 구현
C ++의 캡슐화는 데이터와이 데이터에서 작동하는 함수를 함께 묶는 클래스로 구현됩니다. 대부분 데이터는 클래스 외부에서 액세스 할 수 없도록 비공개로 선언됩니다. 메서드 또는 함수는 공용으로 선언되며 클래스의 개체를 사용하여 액세스 할 수 있습니다.
그러나 개인 멤버에 직접 액세스 할 수는 없으며이를 데이터 숨김이라고합니다. 이 작업이 완료되면 데이터가 보호되고 데이터가 선언 된 특정 클래스의 함수에 의해서만 액세스 할 수 있습니다.
// Example program #include #include using namespace std; //example class to demonstrate encapsulation class sampleData{ int num; char ch; public: //getter methods to read data values int getInt() const{ return num; } char getCh() const{ return ch; } //setter methods to set data values void setInt(int num) { this->num = num; } void setCh(char ch){ this->ch = ch; } }; int main() { sampleData s; s.setInt(100); s.setCh('Z'); cout<<'num = '< 산출:
숫자 = 100
ch = Z
위의 프로그램에서는 getter 및 setter 메서드와 함께 두 개의 멤버 변수를 클래스로 묶었습니다. 그리고 이것은 캡슐화의 예입니다.
우리는 외부 세계에서 접근 할 수 없도록 두 개의 변수, 즉 num과 ch를 private 변수로 선언했습니다. 공용으로 선언 한 함수에만 액세스 할 수 있습니다. 따라서 우리는 숨겨진 데이터 멤버를 클래스의 개인 변수로 가지고 있습니다.
C ++의 캡슐화를 더 잘 이해하기 위해 다른 예제를 살펴 보겠습니다.
#include #include using namespace std; //Accounts class: includes salary info for a particular employee class Accounts{ int empId; double salary, basic, allowances, deductions; public: Accounts(int empId):empId(empId){} //read salary info void readEmployeeInfo(int empId){ cout<<'Enter basic for the employee'< basic; cout<>allowances; cout<>deductions; } //calculate salary double calculateSalary(){ salary = basic+ allowances - deductions; return salary; } //display details void display(){ salary = calculateSalary(); cout<<'Employee: '< 산출:
직원의 기본 입력 1 : 10000
수당 : 4324.43
공제 : 1000
직원 : 1
연봉 : 13324.4
기술 지원 인터뷰 질문 및 답변 pdf
이것은 캡슐화의 또 다른 예입니다. 위에 표시된대로 계정 데이터와이 데이터에 대해 작동하는 모든 기능을 단일 클래스 계정으로 묶는 계정 클래스가 있습니다. 주 함수에서이 클래스의 객체를 만들고 함수에 액세스하여 원하는 정보를 얻을 수 있습니다.
이제 다른 클래스에서 직원 세부 정보가 계정 데이터에 액세스하려고한다고 말하면 직접 수행 할 수 없습니다. 계정 클래스의 개체를 만들어야하며 공개 된 항목에만 액세스 할 수 있습니다. 이러한 방식으로 캡슐화를 사용하여 데이터의 액세스 제어를 보장하고 데이터의 무결성을 보장합니다.
캡슐화와 추상화의 차이점
추상화와 캡슐화는 밀접하게 결합되어 있습니다. 캡슐화는 데이터와 해당 데이터에서 작동하는 메서드를 함께 묶어 추상화를 지원합니다.
캡슐화 추출 데이터를 숨 깁니다. 구현 숨기기 데이터와 메서드를 함께 묶음 사용자에게 필요한 것만 노출하는 추상 인터페이스를 제공합니다. 추상화 지원 코드의 재사용 및 보안을 지원합니다. 데이터 멤버 및 메서드에 대한 액세스를 정의하는 액세스 지정자가있는 클래스로 구현됩니다. 인스턴스화 할 수없는 추상 클래스 및 인터페이스로 구현됩니다.
결론
캡슐화는 데이터를 숨길 수있는 방법을 제공하므로 OOP의 가장 중요한 기능 중 하나입니다. 결과적으로 데이터를 더욱 안전하게 만들고 악의적 인 사용으로부터 데이터를 보호합니다.
캡슐화는 추상화에 도움이되므로 필요한 인터페이스 만 최종 사용자에게 노출하고 그에 따라 다른 세부 정보를 숨길 수 있습니다. 이 자습서에서는 C ++의 추상화 및 캡슐화 개념을 살펴 보았습니다.
다음 자습서에서는 예제를 통해 C ++의 상속에 대해 설명합니다.
=> 독점 C ++ 교육 자습서 시리즈를 보려면 여기를 방문하십시오.
추천 도서