encapsulation c
O prezentare completă a încapsulării în C ++:
Am discutat în detaliu despre abstractizare în tutorialul nostru anterior. Abstracția, după cum știm, ascunde detaliile de implementare de la utilizator și expune doar interfața necesară de către utilizator.
În acest tutorial, vom discuta încă o altă caracteristică importantă a POO, adică Encapsularea. Abstracția și încapsularea merg mână în mână. De fapt, putem spune că codul încapsulat ne ajută în abstractizare. Cu alte cuvinte, încapsularea și abstractizarea sunt strâns legate între ele.
=> Vizitați aici pentru cursul complet C ++ de la experți.
Astfel, putem discuta împreună aceste două concepte, deoarece există o linie foarte subțire între încapsulare și abstractizare.
Ce veți învăța:
- Ce este încapsularea?
- Implementarea incapsulării
- Diferența dintre încapsulare și abstractizare
- Concluzie
- Lectură recomandată
Ce este încapsularea?
Incapsularea datelor se referă la procesul de legare a datelor și funcțiilor sau metodelor care operează pe aceste date într-o singură unitate, astfel încât să fie protejat de interferențe exterioare și de utilizare incorectă.
Acesta este un concept important de programare orientat obiect și duce la un alt concept OOP cunoscut sub numele de „ Ascunderea datelor ”. Incapsularea ascunde datele și membrii săi, în timp ce abstractizarea expune doar detaliile sau interfețele necesare lumii exterioare.
Într-un fel, abstractizarea prezintă „viziunea abstractă” a datelor ascunse către lumea exterioară. Astfel am făcut deja o afirmație că încapsularea și abstractizarea merg mână în mână.
lista de adiacență a graficului c ++
O clasă în C ++ este cea în care grupăm membrii de date și funcțiile care operează pe acești membri de date împreună cu specificatorii de acces precum privat, public și protejat reprezintă încapsulare. Am discutat deja specificatorii de acces în tutorialul nostru anterior despre clase și obiecte.
Știm, de asemenea, că în mod implicit membrii clasei sunt private. Când declarăm membrii clasei ca privați și metode de accesare a membrilor clasei ca publici, implementăm cu adevărat încapsularea. În același timp, oferim o imagine abstractă a datelor către lumea exterioară sub formă de metode publice.
Implementarea incapsulării
Incapsularea în C ++ este implementată ca o clasă care grupează datele și funcțiile care operează pe aceste date împreună. Majoritatea datelor sunt declarate private, astfel încât să nu fie accesibile în afara clasei. Metodele sau funcțiile sunt declarate publice și pot fi accesate folosind obiectul clasei.
Cu toate acestea, nu putem accesa direct membrii privați și aceasta se numește ascunderea datelor. Când se face acest lucru, datele sunt securizate și pot fi accesate numai de funcțiile clasei respective în care sunt declarate datele.
// 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 = '< Ieșire:
num = 100
ch = Z

În programul de mai sus am grupat două variabile membre împreună cu metodele getter și setter într-o clasă. și acesta este un exemplu de încapsulare.
Am declarat două variabile, adică num și ch, ca variabile private, astfel încât acestea să nu fie accesibile lumii exterioare. Acestea sunt accesibile doar funcțiilor pe care le-am declarat publice. Astfel, am ascuns membrii datelor ca variabile private într-o clasă.
Să luăm un alt exemplu pentru a înțelege mai bine Encapsularea în 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: '< Ieșire:
Introduceți elementele de bază pentru angajat1: 10000
indemnizații: 4324,43
deduceri: 1000
Angajat: 1
Salariu: 13324,4

Acesta este încă un alt exemplu de încapsulare. Așa cum se arată mai sus, avem o clasă Conturi care grupează datele contului și toate funcțiile care operează pe aceste date într-o singură clasă Conturi. În funcția principală, putem crea un obiect din această clasă și putem accesa funcții pentru a obține informațiile dorite.
Acum, dacă alte clase afirmă că detaliile angajaților doresc să acceseze datele conturilor, atunci nu le poate face direct. Va trebui să creeze un obiect din clasa Conturi și va putea accesa numai acele elemente care sunt publice. În acest fel, utilizând încapsularea, garantăm controlul accesului la date și, de asemenea, asigurăm integritatea datelor.
implementare tabel hash în cod c ++
Diferența dintre încapsulare și abstractizare
Abstracția și încapsularea sunt strâns legate între ele. Incapsularea ajută la abstractizare prin gruparea de date și metode care operează pe aceste date împreună.
Incapsularea Abstracție Ascunde datele Ascunde implementarea Pachetează date și metode împreună Oferă utilizatorului o interfață abstractă expunând doar ceea ce este necesar Ajută la abstractizare Ajută la refolosirea și securitatea codului. Implementat ca o clasă cu specificatori de acces care definesc accesul la membrii de date și metode Implementat ca o clasă abstractă și interfețe care nu pot fi instanțiate.
Concluzie
Incapsularea este una dintre cele mai importante caracteristici ale POO, deoarece ne oferă o modalitate de a ascunde datele. Acest lucru, la rândul său, face datele mai sigure și le protejează de utilizarea rău intenționată.
Incapsularea ajută la abstractizare, astfel încât să putem expune doar interfața necesară utilizatorului final și să ascundem alte detalii în consecință. În acest tutorial, am analizat conceptele de abstractizare și încapsulare în C ++.
În viitorul nostru tutorial, vom discuta despre Moștenire în C ++ cu exemple.
=> Vizitați aici pentru seria exclusivă de instruire C ++ Training.
Lectură recomandată
- Abstracția datelor în C ++
- Tipuri de date C ++
- Cea mai bună serie de tutoriale GRATUITE C #: Ghidul final C # pentru începători
- 70+ BEST Tutoriale C ++ Pentru a învăța programarea C ++ GRATUIT
- Funcții de bibliotecă în C ++
- Programare orientată pe obiecte în C ++
- Introducere în structurile de date în C ++
- Listele inițializatorului în C ++