Inkapsulyatsiya (Encapsulation)
Inkapsulyatsiya
Inkapsulyatsiya — "nozik" ma'lumotlarni foydalanuvchilardan yashirishni ta'minlashdir.
Bunga erishish uchun sinf o'zgaruvchilari/atributlarini private deb e'lon qilishingiz kerak (sinfdan tashqaridan kirish mumkin emas).
Agar boshqalar private a'zoning qiymatini o'qishini yoki o'zgartirishini xohlasangiz, public get va set metodlarini taqdim etishingiz mumkin.
Hayotiy misol
Xodimning maoshini tasavvur qiling:
- Maosh — maxfiy: xodim uni to'g'ridan-to'g'ri o'zgartira olmaydi
- Faqat uning menejeri tegishli hollarda yangilashi yoki ulashishi mumkin
Inkapsulyatsiya ham xuddi shunday ishlaydi. Ma'lumotlar yashirilgan va faqat ishonchli metodlar ularga kirishi yoki o'zgartirishi mumkin.
Private a'zolarga kirish
Private atributga kirish uchun public "get" va "set" metodlaridan foydalaning:
MISOL
cpp
#include <iostream>
using namespace std;
class Employee {
private:
// Private atribut
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;
}Tushuntirish
salary— private — unga to'g'ridan-to'g'ri kirish mumkin emassetSalary()— qiymatni o'rnatadigetSalary()— qiymatni qaytaradi
Biz myObj.setSalary(50000) yordamida qiymat beramiz va myObj.getSalary() yordamida uni chiqaramiz.
Nega inkapsulyatsiya kerak?
- Sinf atributlarini iloji boricha private deb e'lon qilish yaxshi amaliyot hisoblanadi. Inkapsulyatsiya ma'lumotlarni yaxshiroq boshqarishni ta'minlaydi, chunki siz (yoki boshqalar) kodning bir qismini boshqa qismlarga ta'sir qilmasdan o'zgartirishingiz mumkin
- Ma'lumotlarning xavfsizligi oshadi
