Enkapsulacja C++


Kapsułkowanie

Znaczenie enkapsulacji polega na upewnieniu się, że „wrażliwe” dane są ukryte przed użytkownikami. Aby to osiągnąć, musisz zadeklarować zmienne/atrybuty klasy jako private(nie można uzyskać do nich dostępu spoza klasy). Jeśli chcesz, aby inni odczytywali lub modyfikowali wartość prywatnego członka, możesz udostępnić publiczne metody pobierania i ustawiania .


Dostęp do członków prywatnych

Aby uzyskać dostęp do atrybutu prywatnego, użyj publicznych metod „get” i „set”:

Przykład

#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

Przykład wyjaśniony

Atrybutem salaryjest private, które mają ograniczony dostęp.

Metoda publiczna setSalary()przyjmuje parametr ( s) i przypisuje go do salaryatrybutu (wynagrodzenie = s).

Metoda publiczna getSalary()zwraca wartość salaryatrybutu prywatnego.

Wewnątrz main()tworzymy obiekt Employeeklasy. Teraz możemy użyć setSalary()metody do ustawienia wartości atrybutu prywatnego na 50000. Następnie wywołujemy getSalary()metodę na obiekcie, aby zwrócić wartość.


Dlaczego enkapsulacja?

  • Dobrą praktyką jest deklarowanie atrybutów klasy jako prywatnych (tak często, jak to możliwe). Enkapsulacja zapewnia lepszą kontrolę nad danymi, ponieważ Ty (lub inne osoby) możesz zmienić jedną część kodu bez wpływu na inne części
  • Zwiększone bezpieczeństwo danych