С++ ООП. Інкапсуляція


Інкапсуляція

Інкапсуляція, ховає дані від користувачів. Для досягнення цієї мети необхідно оголосити змінний клас / атрибути , як private (не може бути доступний ззовні класу). Якщо ви хочете, читати або змінювати значення приватного члена, ви можете надати public геттер і сетер методи.


Доступ до закритих членів

Для того, щоб отримати доступ до закритого атрибуту, використовуйте public getter і setter методи:

#include <iostream>
using namespace std;

class Employee {

  private:
    int salary;

  public:

    void setSalary(int s) {   // setter встановлює значення для private змінної
      salary = s;             // private змінна
    }

    int getSalary() {        // getter відображає private змінну
      return salary;         // private змінна
    }

};

int main() {

  Employee myObj;

  myObj.setSalary(50000);      // setter встановлює значення для private змінної
  cout << myObj.getSalary();   // відображення змінної через getter 

  return 0;
}

// RESULT:
// 50000

пояснення прикладу

salary атрибут є private , який має обмежений доступ.

public setSalary() метод приймає параметр ( s )  і привласнює його salary атрибуту ( salary = s; ).

public getSalary() метод повертає значення приватного salary атрибута.

Всередині main() , ми створюємо об'єкт Employee класу. Тепер ми можемо використовувати setSalary() метод, щоб встановити значення приватного атрибута 50000 . Тоді ми викликаємо getSalary() метод об'єкта, щоб повернути значення.


Чому Інкапсуляція?

  • Вважається доброю практикою, оголошувати класи атрибутів, як приватні (так часто, як ви можете). Інкапсуляція забезпечує кращий контроль над вашими даними, тому що ви (або інші) можете змінити одну частину коду, не зачіпаючи інші частини
  • Підвищена безпека даних

Наш партнер:
beta test mp3 playlist downloader