encapsulation c
Ein vollständiger Überblick über die Kapselung in C ++:
Wir haben die Abstraktion in unserem vorherigen Tutorial ausführlich besprochen. Wie wir wissen, verbirgt die Abstraktion die Implementierungsdetails vor dem Benutzer und macht nur die Schnittstelle verfügbar, die vom Benutzer benötigt wird.
In diesem Tutorial werden wir noch ein weiteres wichtiges Merkmal von OOP diskutieren, d. H. Die Kapselung. Abstraktion und Verkapselung gehen Hand in Hand. In der Tat können wir sagen, dass der gekapselte Code uns bei der Abstraktion hilft. Mit anderen Worten, Kapselung und Abstraktion sind eng miteinander verbunden.
=> Besuchen Sie hier für den vollständigen C ++ - Kurs von Experten.
Daher können wir diese beiden Konzepte gemeinsam diskutieren, da zwischen Kapselung und Abstraktion eine sehr dünne Linie besteht.
Was du lernen wirst:
- Was ist Verkapselung?
- Implementierung der Kapselung
- Unterschied zwischen Verkapselung und Abstraktion
- Fazit
- Literatur-Empfehlungen
Was ist Verkapselung?
Datenkapselung bezieht sich auf den Prozess des Zusammenfügens von Daten und Funktionen oder Methoden, die mit diesen Daten arbeiten, zu einer einzigen Einheit, so dass sie vor Störungen und Missbrauch von außen geschützt sind.
Dies ist ein wichtiges objektorientiertes Programmierkonzept und führt zu einem weiteren OOP-Konzept, das als „ Daten verstecken ”. Durch die Kapselung werden Daten und ihre Mitglieder ausgeblendet, während durch die Abstraktion nur die erforderlichen Details oder Schnittstellen zur Außenwelt verfügbar gemacht werden.
In gewisser Weise präsentiert die Abstraktion der Außenwelt die „abstrakte Sicht“ der verborgenen Daten. So haben wir bereits erklärt, dass Kapselung und Abstraktion Hand in Hand gehen.
In einer Klasse in C ++ bündeln wir Datenelemente und die Funktionen, die auf diesen Datenelementen ausgeführt werden, zusammen mit Zugriffsspezifizierern wie privat, öffentlich und geschützt, die die Kapselung darstellen. Wir haben bereits in unserem früheren Tutorial zu Klassen und Objekten auf Zugriffsspezifizierer eingegangen.
Wir wissen auch, dass Klassenmitglieder standardmäßig privat sind. Wenn wir Klassenmitglieder als privat und Methoden für den Zugriff auf Klassenmitglieder als öffentlich deklarieren, implementieren wir die Kapselung wirklich. Gleichzeitig bieten wir der Außenwelt eine abstrakte Sicht auf Daten in Form öffentlicher Methoden.
Implementierung der Kapselung
Die Kapselung in C ++ wird als Klasse implementiert, die Daten und die Funktionen, die mit diesen Daten arbeiten, zusammen bündelt. Meistens werden Daten als privat deklariert, sodass außerhalb der Klasse nicht auf sie zugegriffen werden kann. Die Methoden oder Funktionen werden als öffentlich deklariert und können über das Objekt der Klasse aufgerufen werden.
Wir können jedoch nicht direkt auf private Mitglieder zugreifen. Dies wird als Ausblenden von Daten bezeichnet. In diesem Fall sind die Daten gesichert und können nur von Funktionen der jeweiligen Klasse aufgerufen werden, in der die Daten deklariert sind.
// 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 = '< Ausgabe:
num = 100
ch = Z.
Im obigen Programm haben wir zwei Mitgliedsvariablen zusammen mit den Methoden getter und setter in einer Klasse gebündelt. und dies ist ein Beispiel für die Einkapselung.
Wir haben zwei Variablen, d. H. Num und ch, als private Variablen deklariert, damit sie für die Außenwelt nicht zugänglich sind. Sie sind nur für die Funktionen zugänglich, die wir als öffentlich deklariert haben. Daher haben wir Datenelemente als private Variablen in einer Klasse versteckt.
Nehmen wir ein weiteres Beispiel, um die Kapselung in C ++ besser zu verstehen.
#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: '< Ausgabe:
So öffnen Sie eine .dat-Datei unter Windows
Geben Sie basic für den Mitarbeiter1: 10000 ein
Zulagen: 4324,43
Abzüge: 1000
Mitarbeiter: 1
Gehalt: 13324.4
Dies ist ein weiteres Beispiel für die Kapselung. Wie oben gezeigt, haben wir eine Klasse Konten, die Kontodaten und alle Funktionen, die mit diesen Daten arbeiten, in einer einzigen Klasse Konten bündelt. In der Hauptfunktion können wir ein Objekt dieser Klasse erstellen und auf Funktionen zugreifen, um die gewünschten Informationen zu erhalten.
Wenn einige andere Klassen sagen, dass die Mitarbeiterdetails auf Kontodaten zugreifen möchten, kann dies nicht direkt erfolgen. Es muss ein Objekt der Klasse Accounts erstellen und kann nur auf die öffentlichen Elemente zugreifen. Auf diese Weise gewährleisten wir mithilfe der Kapselung die Zugriffskontrolle der Daten und die Integrität der Daten.
Unterschied zwischen Verkapselung und Abstraktion
Abstraktion und Einkapselung sind eng miteinander verbunden. Die Kapselung unterstützt die Abstraktion, indem Daten und Methoden, die mit diesen Daten arbeiten, zusammen gebündelt werden.
Verkapselung Abstraktion Blendet die Daten aus Versteckt die Implementierung Bündelt Daten und Methoden Bietet dem Benutzer eine abstrakte Schnittstelle, die nur das anzeigt, was erforderlich ist Hilft bei der Abstraktion Hilft bei der Wiederverwendung und Sicherheit des Codes. Implementiert als Klasse mit Zugriffsspezifizierern, die den Zugriff auf Datenelemente und Methoden definieren Implementiert als abstrakte Klasse und Schnittstellen, die nicht instanziiert werden können.
Fazit
Die Kapselung ist eine der wichtigsten Funktionen von OOP, da sie uns die Möglichkeit bietet, die Daten zu verbergen. Dies wiederum macht Daten sicherer und schützt sie vor böswilliger Verwendung.
Die Kapselung hilft bei der Abstraktion, sodass wir dem Endbenutzer nur die erforderliche Schnittstelle zur Verfügung stellen und andere Details entsprechend ausblenden können. In diesem Tutorial haben wir uns mit Abstraktions- und Kapselungskonzepten in C ++ befasst.
In unserem nächsten Tutorial werden wir die Vererbung in C ++ anhand von Beispielen diskutieren.
=> Besuchen Sie hier für die exklusive C ++ - Schulungsserie.
Literatur-Empfehlungen
- Datenabstraktion in C ++
- C ++ - Datentypen
- Beste KOSTENLOSE C # Tutorial-Serie: Der ultimative C # Leitfaden für Anfänger
- Über 70 BEST C ++ - Tutorials zum kostenlosen Erlernen der C ++ - Programmierung
- Bibliotheksfunktionen in C ++
- Objektorientierte Programmierung in C ++
- Einführung in Datenstrukturen in C ++
- Initialisierungslisten in C ++