encapsulation c
Cjelovit pregled enkapsulacije u C ++:
O apstrakciji smo detaljno razgovarali u našem prethodnom vodiču. Kao što znamo, apstrakcija skriva detalje o implementaciji od korisnika i izlaže samo sučelje koje je potrebno od korisnika.
U ovom uputstvu razgovarat ćemo o još jednoj važnoj značajki OOP-a, tj. O kapsuliranju. Apstrakcija i inkapsulacija idu ruku pod ruku. Zapravo možemo reći da nam inkapsulirani kod pomaže u apstrakciji. Drugim riječima, inkapsulacija i apstrakcija usko su povezani.
=> Posjetite ovdje za cjeloviti tečaj stručnjaka za C ++.
Dakle, možemo zajedno razgovarati o ova dva pojma jer postoji vrlo tanka granica između inkapsulacije i apstrakcije.
Što ćete naučiti:
- Što je inkapsulacija?
- Provedba kapsulacije
- Razlika između kapsulacije i apstrakcije
- Zaključak
- Preporučena literatura
Što je inkapsulacija?
Inkapsulacija podataka odnosi se na postupak povezivanja podataka i funkcija ili metoda koje djeluju na te podatke u jednu jedinicu tako da su zaštićeni od vanjskih smetnji i zlouporabe.
Ovo je važan objektno orijentirani koncept programiranja i dovodi do još jednog koncepta OOP-a poznatog kao „ Skrivanje podataka '. Inkapsulacija skriva podatke i njihove članove, dok apstrakcija vanjskom svijetu izlaže samo potrebne detalje ili sučelja.
Na neki način, apstrakcija predstavlja „apstraktni pogled“ na skrivene podatke vanjskom svijetu. Stoga smo već dali izjavu da inkapsulacija i apstrakcija idu ruku pod ruku.
Klasa na C ++-u je ona u kojoj spajamo članove podataka i funkcije koje djeluju na te članove podataka, zajedno s pristupnim specifikatorima kao što su private, public i protected predstavljaju enkapsulaciju. Već smo razgovarali o specifikatorima pristupa u našem ranijem vodiču o klasama i objektima.
Također znamo da su po defaultu članovi klase privatni. Kada članove razreda proglašavamo privatnima, a metode za pristup članovima razreda javnim, uistinu provodimo enkapsulaciju. Istodobno, pružamo apstraktni prikaz podataka vanjskom svijetu u obliku javnih metoda.
Provedba kapsulacije
Inkapsulacija u C ++ implementirana je kao klasa koja objedinjuje podatke i funkcije koje rade na tim podacima. Podaci su uglavnom deklarirani kao privatni, tako da nisu dostupni izvan klase. Metode ili funkcije deklarirane su kao javne i može im se pristupiti pomoću objekta klase.
Međutim, ne možemo izravno pristupiti privatnim članovima i to se naziva skrivanje podataka. Kada se to učini, podaci su zaštićeni i mogu im pristupiti samo funkcije određene klase u kojoj su podaci 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 = '< Izlaz:
num = 100
ch = Z

U gornjem programu udružili smo dvije varijable člana zajedno s metodama getter i setter u klasu. a ovo je primjer inkapsulacije.
Proglasili smo dvije varijable, tj. Num i ch kao privatne varijable, tako da nisu dostupne vanjskom svijetu. Oni su dostupni samo funkcijama koje smo proglasili javnima. Stoga imamo skrivene članove podataka kao privatne varijable u klasi.
Uzmimo još jedan primjer za bolje razumijevanje enkapsulacije u 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: '< Izlaz:
Unesite osnovno za zaposlenika1: 10000
dodaci: 4324,43
odbitci: 1000
Zaposlenik: 1
Plaća: 13324.4

Ovo je još jedan primjer inkapsulacije. Kao što je gore prikazano, imamo klasu Računi koja objedinjuje podatke računa i sve funkcije koje rade s tim podacima u račune jedne klase. U glavnoj funkciji možemo stvoriti objekt ove klase i pristupiti funkcijama kako bismo dobili željene informacije.
Ako neke druge klase kažu da detalji zaposlenika žele pristupiti podacima računa, to ne može učiniti izravno. Trebat će stvoriti objekt računa Račun i moći će pristupiti samo onim stavkama koje su javne. Na ovaj način, pomoću enkapsulacije jamčimo kontrolu pristupa podacima, a također osiguravamo integritet podataka.
Razlika između kapsulacije i apstrakcije
Apstrakcija i inkapsulacija usko su povezani. Inkapsulacija pomaže apstrakciji spajanjem podataka i metoda koje djeluju na te podatke zajedno.
Kapsulacija Apstrakcija Sakriva podatke Skriva implementaciju Skuplja podatke i metode zajedno Pruža apstraktno sučelje za korisnika izlažući samo ono što je potrebno Pomaže u apstrakciji Pomaže u ponovnoj upotrebi i sigurnosti koda. Implementirano kao klasa s specifikatorima pristupa koji definiraju pristup članovima podataka i metodama Implementirano kao apstraktna klasa i sučelja koja se ne mogu instancirati.
Zaključak
Inkapsulacija je jedna od najvažnijih značajki OOP-a jer nam pruža način da sakrijemo podatke. To zauzvrat čini podatke sigurnijima i štiti ih od zlonamjerne upotrebe.
što je json datoteka kako otvoriti
Inkapsulacija pomaže u apstrakciji, tako da krajnjem korisniku možemo izložiti samo potrebno sučelje i u skladu s tim sakriti ostale detalje. U ovom smo tutorijalu pogledali koncepte apstrakcije i inkapsulacije u C ++.
U našem predstojećem vodiču, s primjerima ćemo razgovarati o nasljeđivanju na C ++.
=> Posjetite ovdje za ekskluzivnu seriju vodiča za obuku za C ++.
Preporučena literatura
- Apstrakcija podataka u C ++
- Vrste podataka C ++
- Najbolji BESPLATNI vodiči za C #: Vrhunski vodič za C # za početnike
- 70+ NAJBOLJIH Vodiča za C ++ za BESPLATNO učenje C ++ programiranja
- Knjižnične funkcije na C ++
- Objektno orijentirano programiranje na jeziku C ++
- Uvod u strukture podataka na C ++
- Popisi inicijativa u C ++