encapsulation c
Una descripció completa de l’encapsulació en C ++:
Vam discutir detalladament sobre l’abstracció al nostre tutorial anterior. L'abstracció, com sabem, amaga els detalls de la implementació de l'usuari i exposa només la interfície que l'usuari requereix.
En aquest tutorial, parlarem d’una altra característica important de POO, és a dir, de l’encapsulació. L’abstracció i l’encapsulament van de la mà. De fet, podem dir que el codi encapsulat ens ajuda a l’abstracció. En altres paraules, l’encapsulació i l’abstracció estan estretament lligades.
=> Visiteu aquí el curs complet C ++ d’experts.
Per tant, podem discutir aquests dos conceptes junts ja que hi ha una línia molt fina entre l’encapsulació i l’abstracció.
Què aprendreu:
- Què és l’encapsulació?
- Implementació de l’encapsulació
- Diferència entre l’encapsulació i l’abstracció
- Conclusió
- Lectura recomanada
Què és l’encapsulació?
L’encapsulació de dades fa referència al procés d’unió de dades i funcions o mètodes que operen en aquestes dades en una sola unitat de manera que es protegeixi de les interferències externes i del mal ús.
Aquest és un important concepte de programació orientat a objectes i condueix a un altre concepte de POO conegut com ' Ocultació de dades ”. L’encapsulament amaga les dades i els seus membres, mentre que l’abstracció només exposa els detalls o interfícies necessaris al món exterior.
En certa manera, l’abstracció presenta al món exterior la “visió abstracta” de les dades ocultes. Per tant, ja vam afirmar que l'encapsulació i l'abstracció van de la mà.
Una classe en C ++ és la que agrupa els membres de dades i les funcions que operen en aquests membres de dades juntament amb els especificadors d’accés com a privats, públics i protegits representen l’encapsulació. Ja hem parlat dels especificadors d'accés al nostre anterior tutorial sobre classes i objectes.
També sabem que per defecte els membres de la classe són privats. Quan declarem els membres de la classe com a privats i els mètodes per accedir als membres de la classe com a públics, realment implementem l’encapsulació. Al mateix temps, proporcionem una visió abstracta de les dades al món exterior en forma de mètodes públics.
Implementació de l’encapsulació
L’encapsulació en C ++ s’implementa com una classe que agrupa les dades i les funcions que operen en aquestes dades. La majoria de les dades es declaren privades de manera que no són accessibles fora de la classe. Els mètodes o funcions es declaren públics i s’hi pot accedir mitjançant l’objecte de la classe.
Tot i això, no podem accedir directament a membres privats i això s’anomena ocultació de dades. Quan es fa això, les dades estan protegides i només es pot accedir a les funcions de la classe en particular en què es declaren les dades.
// 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 = '< Sortida:
num = 100
ch = Z

Al programa anterior hem agrupat dues variables membres juntament amb els mètodes getter i setter en una classe. i aquest és un exemple d’encapsulació.
Hem declarat dues variables, és a dir, num i ch com a variables privades perquè no siguin accessibles al món exterior. Només són accessibles a les funcions que hem declarat públiques. Per tant, hem amagat membres de dades com a variables privades en una classe.
Prenguem un altre exemple per entendre millor l'encapsulació en 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: '< Sortida:
Introduïu el valor bàsic per a l’empleat1: 10000
bonificacions: 4324,43
deduccions: 1000
Empleat: 1
Salari: 13324,4

Aquest és un exemple més d’encapsulació. Com es mostra més amunt, tenim una classe de comptes que agrupa les dades del compte i totes les funcions que operen en aquestes dades en una sola classe de comptes. A la funció principal, podem crear un objecte d’aquesta classe i accedir a funcions per obtenir la informació desitjada.
Ara bé, si algunes altres classes diuen que els detalls dels empleats volen accedir a les dades dels comptes, no ho poden fer directament. Haurà de crear un objecte de classe Comptes i només podrà accedir als elements que siguin públics. D’aquesta manera, mitjançant l’encapsulació garantim el control d’accés a les dades i també garantim la integritat de les dades.
Diferència entre l’encapsulació i l’abstracció
L’abstracció i l’encapsulació estan estretament units. L’encapsulació ajuda a l’abstracció agrupant dades i mètodes que operen en aquestes dades.
Encapsulació Abstracció Amaga les dades Oculta la implementació Agrupa dades i mètodes junts Proporciona una interfície abstracta a l'usuari que exposa només el que cal Ajudes a l'abstracció Ajudes a la reutilització i seguretat del codi. Implementat com a classe amb especificadors d’accés que defineixen l’accés als membres i als mètodes de dades Implementat com a classe abstracta i interfícies que no es poden instanciar.
Conclusió
L’encapsulació és una de les característiques més importants de la POO, ja que ens proporciona una manera d’amagar les dades. Al seu torn, això fa que les dades siguin més segures i les protegeixi de l’ús maliciós.
Preguntes i respostes de l'entrevista de guions vb
L’encapsulació ajuda a l’abstracció, de manera que només podem exposar la interfície necessària a l’usuari final i amagar altres detalls en conseqüència. En aquest tutorial, hem analitzat els conceptes d’abstracció i encapsulació a C ++.
Al nostre proper tutorial, parlarem de l’herència en C ++ amb exemples.
=> Visiteu aquí la sèrie exclusiva de cursos de formació C ++.
Lectura recomanada
- Abstracció de dades en C ++
- Tipus de dades C ++
- Millor sèrie de tutorials C # GRATU :TS: la millor guia C # per a principiants
- 70+ BEST Tutorials C ++ per aprendre programació C ++ GRATIS
- Funcions de biblioteca a C ++
- Programació orientada a objectes en C ++
- Introducció a les estructures de dades en C ++
- Llistes d'inicialitzadors a C ++