C++ Encapsulation
Inkapseling
Die betekenis van Encapsulation , is om seker te maak dat "sensitiewe" data vir gebruikers versteek word. Om dit te bereik, moet jy klasveranderlikes/-kenmerke verklaar as private
(kan nie van buite die klas verkry word nie). As jy wil hê dat ander die waarde van 'n private lid moet lees of verander, kan jy publieke kry en
stel metodes verskaf.
Toegang tot privaat lede
Om toegang tot 'n private kenmerk te verkry, gebruik publieke "kry" en "stel" metodes:
Voorbeeld
#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;
}
Voorbeeld verduidelik
Die salary
kenmerk is private
, wat beperkte toegang het.
Die publieke setSalary()
metode neem 'n parameter ( s
) en ken dit toe aan die
salary
kenmerk (salaris = s).
Die publieke getSalary()
metode gee die waarde van die private salary
kenmerk terug.
Binne main()
skep ons 'n objek van die Employee
klas. Nou kan ons die
setSalary()
metode gebruik om die waarde van die private kenmerk op te stel 50000
. Dan roep ons die
getSalary()
metode op die voorwerp om die waarde terug te gee.
Waarom inkapseling?
- Dit word as goeie praktyk beskou om jou klaskenmerke as privaat te verklaar (so dikwels as wat jy kan). Inkapseling verseker beter beheer van jou data, want jy (of ander) kan een deel van die kode verander sonder om ander dele te beïnvloed
- Verhoogde sekuriteit van data