C++ inkapsulyatsiya
Inkapsulyatsiya
Inkapsulyatsiyaning ma’nosi — "maxfiy" ma’lumotlarning foydalanuvchilardan yashirilishini ta’minlash.
Bunga erishish uchun sinf o‘zgaruvchilari/atributlarini private (sinfdan tashqaridan murojaat qilib bo‘lmaydigan) qilib e’lon qilishingiz kerak.
Agar boshqalar private a’zoning qiymatini o‘qishi yoki o‘zgartirishi kerak bo‘lsa, public get va set metodlarini taqdim etishingiz mumkin.
Hayotiy misol
Xodimning maoshini tasavvur qiling:
- Maosh yopiq (private) — xodim uni to‘g‘ridan-to‘g‘ri o‘zgartira olmaydi
- Faqat uning rahbari uni yangilashi yoki kerak bo‘lganda ma’lum qilishi mumkin
Inkapsulyatsiya ham xuddi shunday ishlaydi. Ma’lumotlar yashirilgan bo‘ladi va ularga faqat ishonchli metodlar murojaat qilishi yoki ularni o‘zgartirishi mumkin.
Private a’zolarga murojaat qilish
Private atributga murojaat qilish uchun public "get" va "set" metodlaridan foydalaning:
Misol
#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;
}
O‘zingiz sinab ko‘ring »
Misol izohi
salary— private, unga to‘g‘ridan-to‘g‘ri murojaat qilib bo‘lmaydisetSalary()qiymatni o‘rnatadigetSalary()qiymatni qaytaradi
Qiymat berish uchun myObj.setSalary(50000) chaqiruvidan, uni chiqarish uchun esa myObj.getSalary() chaqiruvidan foydalanamiz.
Nega inkapsulyatsiya kerak?
- Sinf atributlarini (imkon qadar tez-tez) private qilib e’lon qilish yaxshi amaliyot hisoblanadi. Inkapsulyatsiya ma’lumotlaringizni yaxshiroq nazorat qilishni ta’minlaydi, chunki siz (yoki boshqalar) kodning bir qismini boshqa qismlariga ta’sir qilmasdan o‘zgartira olasiz
- Ma’lumotlar xavfsizligi oshadi
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
