encapsulation c
ustvari nov java projekt v mrku
Popoln pregled inkapsulacije v jeziku C ++:
V prejšnji vadnici smo podrobno razpravljali o abstrakciji. Kot vemo, abstrakcija pred uporabnikom skrije podrobnosti o izvedbi in izpostavi samo vmesnik, ki ga zahteva uporabnik.
V tej vadnici bomo razpravljali o še eni pomembni značilnosti OOP, tj.inkapsulaciji. Abstrakcija in inkapsulacija gresta z roko v roki. Pravzaprav lahko rečemo, da nam zaprta koda pomaga pri abstrakciji. Z drugimi besedami, inkapsulacija in abstrakcija sta tesno povezana.
=> Obiščite tukaj za celoten tečaj strokovnjakov za C ++.
Tako lahko o teh dveh konceptih razpravljamo skupaj, saj obstaja zelo tanka meja med kapsulacijo in abstrakcijo.
Kaj se boste naučili:
- Kaj je kapsulacija?
- Izvajanje kapsulacije
- Razlika med kapsulacijo in abstrakcijo
- Zaključek
- Priporočeno branje
Kaj je kapsulacija?
Kapsulacija podatkov se nanaša na postopek povezovanja podatkov in funkcij ali metod, ki delujejo na teh podatkih, v eno enoto, tako da so zaščiteni pred zunanjimi motnjami in zlorabo.
To je pomemben objektno usmerjen koncept programiranja in vodi do še enega koncepta OOP, znanega kot ' Skrivanje podatkov '. Enkapsulacija skriva podatke in njihove člane, medtem ko abstrakcija zunanjemu svetu izpostavlja le potrebne podrobnosti ali vmesnike.
Abstrakcija na nek način predstavlja 'abstraktni pogled' skritih podatkov zunanjemu svetu. Tako smo že izjavili, da gresta inkapsulacija in abstrakcija z roko v roki.
Razred v jeziku C ++ je tisti, pri katerem združimo člane podatkov in funkcije, ki delujejo na teh članih podatkov, skupaj z opredeljevalci dostopa, kot so zasebni, javni in zaščiteni, predstavljajo enkapsulacijo. O opisovalcih dostopa smo že razpravljali v prejšnji vadnici o razredih in predmetih.
Vemo tudi, da so privzeto člani razreda zasebni. Ko člane razreda razglasimo za zasebne in metode za dostop do učencev kot javne, resnično izvajamo enkapsulacijo. Hkrati ponujamo abstrakten pogled na podatke zunanjemu svetu v obliki javnih metod.
Izvajanje kapsulacije
Inkapsulacija v jeziku C ++ je izvedena kot razred, ki združuje podatke in funkcije, ki delujejo na teh podatkih. Podatki so večinoma deklarirani kot zasebni, tako da niso dostopni zunaj razreda. Metode ali funkcije so razglašene kot javne in do njih je mogoče dostopati s pomočjo predmeta razreda.
Do zasebnih članov pa ne moremo neposredno dostopati in temu pravimo skrivanje podatkov. Ko je to storjeno, so podatki zaščiteni in do njih lahko dostopajo samo funkcije določenega razreda, v katerem so podatki deklarirani.
// 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 = '< Izhod:
število = 100
ch = Z
V zgornjem programu smo združili dve spremenljivki članov skupaj z metodama getter in setter v razred. in to je primer kapsulacije.
Dve spremenljivki, tj. Num in ch, smo razglasili za zasebni spremenljivki, tako da nista dostopni zunanjemu svetu. Dostopne so samo za funkcije, ki smo jih razglasili za javne. Tako imamo v razredu skrite člane podatkov kot zasebne spremenljivke.
Vzemimo še en primer za boljše razumevanje Enkapsulacije v jeziku 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: '< Izhod:
Vnesite osnovno za zaposlenega1: 10000
dodatki: 4324,43
odbitki: 1000
Zaposlen: 1
Plača: 13324,4
To je še en primer inkapsulacije. Kot je prikazano zgoraj, imamo razred Računi, ki združuje podatke o računih in vse funkcije, ki delujejo na teh podatkih, v en razred Računi. V glavni funkciji lahko ustvarimo objekt tega razreda in dostopamo do funkcij, da dobimo želene informacije.
Če nekateri drugi razredi pravijo, da želijo podatki o zaposlenem dostopati do podatkov o računih, potem tega ne more storiti neposredno. Ustvariti bo moral objekt razreda Računi in bo lahko dostopal samo do tistih javnih elementov. Na ta način z enkapsulacijo zagotavljamo nadzor dostopa do podatkov in zagotavljamo tudi njihovo celovitost.
Razlika med kapsulacijo in abstrakcijo
Abstrakcija in inkapsulacija sta tesno povezani. Kapsulacija pomaga pri abstrakciji, tako da združuje podatke in metode, ki delujejo na teh podatkih.
Kapsulacija Abstrakcija Skriva podatke Skriva izvajanje Združi podatke in metode Ponuja abstraktni vmesnik za uporabnika, ki izpostavi samo tisto, kar je potrebno Pomaga pri abstrakciji Pomaga pri ponovni uporabi in varnosti kode. Izvedeno kot razred s specifikatorji dostopa, ki definirajo dostop do podatkovnih članov in metod Izvedeno kot abstraktni razred in vmesniki, ki jih ni mogoče ustvariti.
Zaključek
Enkapsulacija je ena najpomembnejših lastnosti OOP, saj nam omogoča skrivanje podatkov. To pa naredi podatke bolj varne in jih varuje pred zlonamerno uporabo.
Kapsulacija pomaga pri abstrakciji, tako da lahko končnemu uporabniku izpostavimo samo zahtevani vmesnik in ustrezno skrijemo druge podrobnosti. V tej vadnici smo si ogledali koncepte abstrakcije in inkapsulacije v jeziku C ++.
V naši prihajajoči vadnici bomo s primeri razpravljali o dedovanju v jeziku C ++.
=> Obiščite tukaj za ekskluzivno serijo vadnic za C ++.
Priporočeno branje
- Abstrakcija podatkov v jeziku C ++
- Vrste podatkov C ++
- Najboljša BREZPLAČNA vadnica za C #: Ultimate C # Guide za začetnike
- 70+ NAJBOLJŠIH vaj za C ++ za BREZPLAČNO učenje C ++ programiranja
- Knjižnične funkcije v C ++
- Objektno usmerjeno programiranje v jeziku C ++
- Uvod v podatkovne strukture v jeziku C ++
- Seznami inicializatorjev v jeziku C ++