encapsulation c
Запитання щодо співбесіди до довідкової служби рівня 1
Повний огляд інкапсуляції в C ++:
Ми детально обговорили абстракцію у нашому попередньому уроці. Як відомо, абстракція приховує деталі реалізації від користувача і виставляє лише той інтерфейс, який потрібен користувачеві.
У цьому посібнику ми обговоримо ще одну важливу особливість ООП, тобто інкапсуляцію. Абстракція та інкапсуляція йдуть рука об руку. Насправді ми можемо сказати, що інкапсульований код допомагає нам у абстракції. Іншими словами, інкапсуляція та абстракція тісно пов’язані між собою.
=> Завітайте сюди, щоб отримати повний курс експертів на C ++.
Таким чином, ми можемо обговорити ці дві концепції разом, оскільки існує дуже тонка грань між інкапсуляцією та абстракцією.
Що ви дізнаєтесь:
- Що таке інкапсуляція?
- Здійснення інкапсуляції
- Різниця між інкапсуляцією та абстракцією
- Висновок
- Рекомендована література
Що таке інкапсуляція?
Інкапсуляція даних відноситься до процесу зв’язування даних та функцій або методів, що діють на ці дані, в єдиний блок, щоб вони були захищені від стороннього втручання та зловживання.
Це важлива об'єктно-орієнтована концепція програмування, і вона веде до ще однієї концепції ООП, відомої як ' Приховування даних '. Інкапсуляція приховує дані та їхні члени, тоді як абстракція відкриває лише необхідні деталі або інтерфейси зовнішньому світу.
Певним чином, абстракція представляє „абстрактний погляд” прихованих даних зовнішньому світу. Таким чином, ми вже заявили, що інкапсуляція та абстракція йдуть рука об руку.
Клас на C ++ - це той клас, в якому ми об’єднуємо члени даних та функції, що діють на ці члени даних, разом із специфікаторами доступу, такими як private, public та protected представляють інкапсуляцію. Ми вже обговорювали специфікатори доступу у нашому попередньому підручнику з класів та об’єктів.
Ми також знаємо, що за замовчуванням учасники класу є приватними. Коли ми оголошуємо членів класу приватними, а методи доступу членів класу як загальнодоступні, ми справді впроваджуємо інкапсуляцію. У той же час ми надаємо абстрактний погляд на зовнішні дані у формі публічних методів.
Здійснення інкапсуляції
Інкапсуляція в 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
ch = Z

У наведеній вище програмі ми об’єднали дві змінні-члени разом із методами getter та setter у клас. і це приклад інкапсуляції.
Ми оголосили дві змінні, тобто num та ch як приватні змінні, щоб вони не були доступними для зовнішнього світу. Вони доступні лише для функцій, які ми оголосили загальнодоступними. Таким чином, ми маємо приховані члени даних як приватні змінні в класі.
Візьмемо ще один приклад, щоб краще зрозуміти інкапсуляцію в 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: '< Вихід:
Введіть базовий для працівника1: 10000
надбавки: 4324,43
відрахування: 1000
Співробітник: 1
Зарплата: 13324.4

Це ще один приклад інкапсуляції. Як показано вище, ми маємо клас Accounts, який об’єднує дані облікових записів та всі функції, які працюють з цими даними, в єдиний клас Accounts. В основній функції ми можемо створити об’єкт цього класу та отримати доступ до функцій, щоб отримати потрібну інформацію.
Тепер, якщо деякі інші класи кажуть, що дані працівника хочуть отримати доступ до даних облікових записів, то він не може зробити це безпосередньо. Йому потрібно буде створити об’єкт Облікових записів класів і матиме доступ до тих елементів, які є загальнодоступними. Таким чином, використовуючи інкапсуляцію, ми гарантуємо контроль доступу до даних, а також забезпечуємо цілісність даних.
Різниця між інкапсуляцією та абстракцією
Абстракція та інкапсуляція тісно пов’язані між собою. Інкапсуляція допомагає абстрагуватися шляхом об’єднання даних та методів, що діють на ці дані.
Капсуляція Абстракція Приховує дані Приховує реалізацію Групує дані та методи разом Надає абстрактний інтерфейс для користувача, викладаючи лише те, що потрібно Допомагає в абстракції Допомагає у повторному використанні та захисті коду. Реалізовано як клас із специфікаторами доступу, що визначають доступ до членів даних та методів Реалізовано як абстрактний клас та інтерфейси, які неможливо створити.
Висновок
Інкапсуляція - одна з найважливіших особливостей ООП, оскільки вона надає нам спосіб приховати дані. Це, в свою чергу, робить дані більш захищеними та захищає їх від зловмисного використання.
Інкапсуляція допомагає абстрагуватися, так що ми можемо надавати кінцевому користувачеві лише необхідний інтерфейс і відповідно приховувати інші деталі. У цьому підручнику ми розглянули поняття абстракції та інкапсуляції в C ++.
У нашому майбутньому уроці ми обговоримо спадщину в C ++ на прикладах.
=> Завітайте сюди, щоб ознайомитись із ексклюзивними навчальними посібниками з C ++.
Рекомендована література
- Абстракція даних на C ++
- Типи даних C ++
- Найкращий БЕЗКОШТОВНИЙ підручник з C #: Остаточний посібник для C # для початківців
- 70+ НАЙКРАЩИХ підручників для C ++ для вивчення програмування на C ++ БЕЗКОШТОВНО
- Бібліотечні функції в C ++
- Об'єктно-орієнтоване програмування на C ++
- Вступ до структур даних на C ++
- Списки ініціалізаторів на C ++