encapsulation c
Комплетан преглед енкапсулације у Ц ++:
О апстракцији смо детаљно разговарали у нашем претходном водичу. Апстракција, као што знамо, скрива детаље о имплементацији од корисника и излаже само интерфејс који је потребан кориснику.
У овом упутству ћемо размотрити још једну важну карактеристику ООП-а, тј. Енкапсулацију. Апстракција и инкапсулација иду руку под руку. У ствари, можемо рећи да нам инкапсулирани код помаже у апстракцији. Другим речима, инкапсулација и апстракција су уско повезани.
=> Посетите овде за целокупан курс стручњака за Ц ++.
Дакле, можемо заједно разговарати о ова два концепта јер постоји врло танка граница између инкапсулације и апстракције.
Шта ћете научити:
- Шта је капсулација?
- Имплементација капсулације
- Разлика између капсулације и апстракције
- Закључак
- Препоручено читање
Шта је капсулација?
Инкапсулација података односи се на процес повезивања података и функција или метода које раде на овим подацима у једну целину, тако да су заштићени од спољних сметњи и злоупотребе.
је мрежни безбедносни кључ исто што и лозинка
Ово је важан објектно оријентисан концепт програмирања и доводи до још једног концепта ООП-а познатог као „ Сакривање података ”. Инкапсулација скрива податке и њихове чланове, док апстракција излаже спољном свету само потребне детаље или интерфејсе.
На неки начин, апстракција представља „апстрактни приказ“ скривених података спољном свету. Стога смо већ дали изјаву да инкапсулација и апстракција иду руку под руку.
Класа на Ц ++-у је она у којој спајамо чланове података и функције које раде на тим члановима података заједно са спецификаторима приступа попут привате, публиц и протецтед представљају енкапсулацију. Већ смо разговарали о спецификаторима приступа у нашем ранијем водичу о класама и објектима.
Такође знамо да су чланови класе по дефаулту приватни. Када чланове класе прогласимо приватнима, а методе за приступ члановима класе јавним, заиста примењујемо енкапсулацију. Истовремено, пружамо апстрактни поглед на податке спољном свету у облику јавних метода.
Имплементација капсулације
Инкапсулација у Ц ++ имплементирана је као класа која обједињује податке и функције које раде на тим подацима. Подаци су углавном декларисани као приватни тако да нису доступни изван класе. Методе или функције су декларисане као јавне и може им се приступити помоћу објекта класе.
Међутим, не можемо директно приступити приватним члановима и то се назива скривање података. Када се то уради, подаци су заштићени и могу им приступити само функције те одређене класе у којој су подаци декларисани.
// 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 = '< Излаз:
нум = 100
цх = З

У горњем програму смо групирали две променљиве члана заједно са геттер и сеттер методама у класу. а ово је пример инкапсулације.
Прогласили смо две променљиве, тј. Нум и цх, као приватне променљиве, тако да нису доступне спољном свету. Они су доступни само функцијама које смо прогласили јавним. Тако имамо скривене чланове података као приватне променљиве у класи.
Узмимо још један пример за боље разумевање енкапсулације у Ц ++.
#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: '< Излаз:
Унесите основно за запосленог1: 10000
додаци: 4324,43
одбитци: 1000
Запослени: 1
Плата: 13324.4

Ово је још један пример инкапсулације. Као што је горе приказано, имамо класу Рачуни која обједињује податке о налозима и све функције које раде на тим подацима у рачуне једне класе. У главној функцији можемо створити објекат ове класе и приступити функцијама да бисмо добили жељене информације.
Ако неке друге класе кажу да детаљи о запосленом желе да приступе подацима налога, то не може учинити директно. Требаће да креира објекат налога класе и моћи ће да приступи само оним ставкама које су јавне. На овај начин, користећи енкапсулацију, гарантујемо контролу приступа подацима и такође осигуравамо интегритет података.
двоструко повезана листа ц ++ уметак
Разлика између капсулације и апстракције
Апстракција и инкапсулација су уско повезани. Инкапсулација помаже апстракцији спајањем података и метода које делују на тим подацима заједно.
Капсулација Одвајање Сакрива податке Сакрива имплементацију Спаја податке и методе заједно Пружа апстрактни интерфејс кориснику који излаже само оно што је потребно Помагала у апстракцији Помаже у поновној употреби и сигурности кода. Имплементирано као класа са спецификаторима приступа који дефинишу приступ члановима података и методама Имплементирано као апстрактна класа и интерфејси који се не могу инстанцирати.
Закључак
Инкапсулација је једна од најважнијих карактеристика ООП-а јер нам пружа начин да сакријемо податке. То заузврат чини податке сигурнијим и штити их од злонамерне употребе.
Капсулација помаже у апстракцији, тако да крајњем кориснику можемо изложити само тражени интерфејс и у складу са тим сакрити остале детаље. У овом упутству смо погледали концепте апстракције и инкапсулације у Ц ++.
У нашем предстојећем упутству, са примерима ћемо разговарати о наслеђивању у Ц ++.
=> Посетите овде за ексклузивну серију водича за обуку за Ц ++.
Препоручено читање
- Апстракција података у језику Ц ++
- Типови података Ц ++
- Најбољи БЕСПЛАТНИ водичи за Ц #: Крајњи водич за Ц # за почетнике
- 70+ НАЈБОЉИХ Водича за Ц ++ за БЕСПЛАТНО учење Ц ++ програмирања
- Библиотечке функције у Ц ++
- Објектно оријентисано програмирање на језику Ц ++
- Увод у структуре података на језику Ц ++
- Листе иницијализатора у језику Ц ++