C++ Інкапсуляція
Інкапсуляція
Значення інкапсуляції полягає в тому, щоб переконатися, що «конфіденційні» дані приховані від користувачів. Щоб досягти цього, ви повинні вказати змінні/атрибути класу як private
(до них не можна отримати доступ поза класом). Якщо ви хочете, щоб інші читали або змінювали значення приватного члена, ви можете надати загальнодоступні методи get та set.
Доступ до приватних членів
Щоб отримати доступ до privat атрибута, використовуйте загальнодоступні методи "get" і "set":
Приклад
#include <iostream>
using namespace std;
class Employee {
private:
// private атрибут
int salary;
public:
// Сеттер
void setSalary(int s) {
salary = s;
}
// Геттер
int getSalary() {
return salary;
}
};
int main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
Спробуйте самі »
Пояснення прикладу
Атрибут salary
є privat
, доступ до якого обмежено.
Загальнодоступний метод setSalary()
приймає параметр (s
) і призначає його атрибуту salary
(salary = s).
Загальнодоступний метод getSalary()
повертає значення приватного атрибута salary
.
Усередині main()
ми створюємо об’єкт класу Employee
. Тепер ми можемо використовувати метод setSalary()
, щоб встановити значення privat атрибута на 50000
. Потім ми викликаємо метод getSalary()
для об’єкта, щоб повернути значення.
Чому саме інкапсуляція?
- Вважається гарною практикою оголошувати атрибути класу як приватні (privat) як можна частіше. Інкапсуляція забезпечує кращий контроль над вашими даними, оскільки ви (чи інші) можете змінити одну частину коду, не впливаючи на інші частини
- Підвищена безпека даних