encapsulation c
Kompletný prehľad zapuzdrenia v C ++:
Abstrakcii sme sa podrobne venovali v našom predchádzajúcom tutoriáli. Abstrakcia, ako vieme, pred používateľom skryje podrobnosti implementácie a sprístupní iba rozhranie, ktoré používateľ požaduje.
V tomto výučbe sa budeme zaoberať ešte ďalšou dôležitou vlastnosťou OOP, tj zapuzdrením. Abstrakcia a zapuzdrenie idú ruka v ruke. V skutočnosti môžeme povedať, že zapuzdrený kód nám pomáha v abstrakcii. Inými slovami, zapuzdrenie a abstrakcia sú úzko spojené.
=> Navštívte tu kompletný kurz C ++ od odborníkov.
ako sa stať vedúcou knihou
Môžeme teda diskutovať o týchto dvoch konceptoch spoločne, pretože medzi zapuzdrením a abstrakciou existuje veľmi tenká hranica.
Čo sa dozviete:
- Čo je zapuzdrenie?
- Implementácia zapuzdrenia
- Rozdiel medzi zapuzdrením a abstrakciou
- Záver
- Odporúčané čítanie
Čo je zapuzdrenie?
Zapuzdrením údajov sa rozumie proces spojenia údajov a funkcií alebo metód operujúcich s týmito údajmi do jednej jednotky tak, aby bola chránená pred vonkajším rušením a zneužitím.
Toto je dôležitý objektovo orientovaný koncept programovania a vedie k ďalšiemu konceptu OOP známemu ako „ Skrývanie údajov “. Zapuzdrenie skrýva údaje a ich členov, zatiaľ čo abstrakcia vystavuje vonkajšiemu svetu iba potrebné podrobnosti alebo rozhrania.
Svojím spôsobom predstavuje abstrakcia „abstraktný pohľad“ na skryté dáta vonkajšiemu svetu. Takto sme už urobili vyhlásenie, že zapuzdrenie a abstrakcia idú ruka v ruke.
Trieda v C ++ je trieda, kde združujeme dátové členy a funkcie fungujúce na týchto dátových členoch spolu so špecifikátormi prístupu, ako sú súkromné, verejné a chránené, zapúzdrenie. O špecifikátoroch prístupu sme sa už zmienili v našom staršom výučbe tried a objektov.
Vieme tiež, že predvolene sú členovia triedy súkromní. Keď deklarujeme členov triedy ako súkromných a metódy prístupu k členom triedy ako verejným, skutočne implementujeme zapuzdrenie. Zároveň poskytujeme abstraktný pohľad na údaje vonkajšiemu svetu vo forme verejných metód.
Implementácia zapuzdrenia
Zapuzdrenie v jazyku C ++ je implementované ako trieda, ktorá spája údaje a funkcie fungujúce na týchto údajoch dohromady. Väčšinou sú údaje deklarované ako súkromné, aby neboli prístupné mimo triedy. Metódy alebo funkcie sú vyhlásené za verejné a je možné k nim pristupovať pomocou objektu triedy.
Nemôžeme však priamo získať prístup k súkromným členom, čo sa nazýva skrývanie údajov. Keď je to hotové, údaje sú zabezpečené a je k nim prístup iba pomocou funkcií príslušnej triedy, v ktorej sú údaje deklarované.
// 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 = '< Výkon:
num = 100
ch = Z

Vo vyššie uvedenom programe sme do triedy pridali dve členské premenné spolu s metódami getra a setra. a toto je príklad zapuzdrenia.
Deklarovali sme dve premenné, tj. Num a ch, ako súkromné premenné, aby neboli prístupné vonkajšiemu svetu. Sú prístupné iba funkciám, ktoré sme označili ako verejné. Preto máme v triede skryté dátové členy ako súkromné premenné.
Zoberme si ďalší príklad na lepšie pochopenie zapuzdrenia v 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: '< Výkon:
Zadajte základné pre zamestnanca1: 10 000
príspevky: 4324,43
odpočty: 1 000
Zamestnanec: 1
Plat: 13324,4

Toto je ešte ďalší príklad zapuzdrenia. Ako je uvedené vyššie, máme účty triedy, ktoré združujú údaje účtov a všetky funkcie, ktoré s týmito údajmi pracujú, do účtov jednej triedy. V hlavnej funkcii môžeme vytvoriť objekt tejto triedy a získať prístup k funkciám, aby sme získali požadované informácie.
Ak teraz niektoré ďalšie triedy tvrdia, že podrobnosti o zamestnancoch chcú získať prístup k údajom o účtoch, potom to nemôže urobiť priamo. Bude potrebné vytvoriť objekt triedy Účty a bude mať prístup iba k tým položkám, ktoré sú verejné. Týmto spôsobom pomocou zapuzdrenia zaručujeme kontrolu prístupu k údajom a tiež zaisťujeme integritu údajov.
čo je sieťový kľúč na smerovači -
Rozdiel medzi zapuzdrením a abstrakciou
Abstrakcia a zapuzdrenie sú úzko spojené. Zapuzdrenie pomáha pri abstrakcii spojením údajov a metód, ktoré na nich pracujú.
Zapuzdrenie Abstrakcia Skryje údaje Skryje implementáciu Zoskupuje údaje a metódy dohromady Poskytuje užívateľovi abstraktné rozhranie, ktoré odhaľuje iba to, čo sa vyžaduje Pomôcky v abstrakcii Pomôcky pri opätovnom použití a bezpečnosti kódu. Implementované ako trieda so špecifikátormi prístupu definujúcimi prístup k dátovým členom a metódam Implementované ako abstraktná trieda a rozhrania, ktoré nie je možné vytvoriť inštanciou.
Záver
Zapuzdrenie je jednou z najdôležitejších funkcií OOP, pretože nám poskytuje spôsob, ako skryť údaje. To zase zvyšuje bezpečnosť údajov a chráni ich pred škodlivým používaním.
Zapuzdrenie pomáha v abstrakcii, takže môžeme koncovému používateľovi vystaviť iba požadované rozhranie a podľa toho skryť ďalšie podrobnosti. V tomto tutoriáli sme sa pozreli na koncepty abstrakcie a zapuzdrenia v C ++.
V našom pripravovanom výučbe sa budeme zaoberať dedením v C ++ pomocou príkladov.
=> Navštívte tu exkluzívnu sériu výučbových kurzov C ++.
Odporúčané čítanie
- Abstrakcia dát v C ++
- Dátové typy C ++
- Najlepšia výučbová séria C # ZDARMA: Sprievodca C # pre začiatočníkov
- 70+ NAJLEPŠÍCH tutoriálov pre C ++ Naučte sa programovanie v C ++ ZDARMA
- Funkcie knižnice v C ++
- Objektovo orientované programovanie v C ++
- Úvod do dátových štruktúr v C ++
- Zoznamy inicializátorov v C ++