Kirish spetsifikatorlari (Access Specifiers)
Kirish spetsifikatorlari
Kirish spetsifikatorlari sinf a'zolariga (atributlar va metodlarga) qanday kirish mumkinligini boshqaradi.
Ular ma'lumotlarni himoya qilish va kodni tartibga solishga yordam beradi, shunda faqat kerakli qismlar ko'rinadi yoki o'zgartiriladi.
Kirish spetsifikatorlaridan foydalanish
public kalit so'zi — kirish spetsifikatoridir.
Quyidagi misolda a'zolar public — ya'ni ularni sinfdan tashqaridan ham kirish va o'zgartirish mumkin:
MISOL
class MyClass { // Sinf
public: // Kirish spetsifikatori
// sinf a'zolari shu yerda
};Agar a'zolarni maxfiy va tashqi dunyodan yashirilgan qilmoqchi bo'lsak nima bo'ladi?
C++ da uchta kirish spetsifikatori mavjud:
public— a'zolarga sinfdan tashqaridan kirish mumkinprivate— a'zolarga sinfdan tashqaridan kirish (yoki ko'rish) mumkin emasprotected— a'zolarga sinfdan tashqaridan kirish mumkin emas, lekin meros olingan sinflarda foydalanish mumkin
Private
private deb e'lon qilingan a'zolarga sinfdan tashqaridan kirish mumkin emas.
public va private a'zolar orasidagi farqni ko'rsatamiz:
XATO MISOL
class MyClass {
public: // Public kirish spetsifikatori
int x; // Public atribut
private: // Private kirish spetsifikatori
int y; // Private atribut
};
int main() {
MyClass myObj;
myObj.x = 25; // Ruxsat berilgan (public)
myObj.y = 50; // Ruxsat berilMAgan (private)
return 0;
}Private a'zoga kirishga harakat qilsangiz, xatolik yuzaga keladi:
error: y is privateESLATMA
Private sinf a'zolariga shu sinf ichidagi public metod orqali kirish mumkin. Bu haqda keyingi bob — Inkapsulyatsiya da o'rganasiz.
MASLAHAT
Sinf atributlarini iloji boricha private deb e'lon qilish yaxshi amaliyot hisoblanadi. Bu kodingizni buzish ehtimolini kamaytiradi. Bu Inkapsulyatsiya kontseptsiyasining asosiy tarkibiy qismidir.
Eslatma: Agar kirish spetsifikatori ko'rsatilmasa, sinfning barcha a'zolari standart holda private bo'ladi:
MISOL
class MyClass {
int x; // Private atribut
int y; // Private atribut
};Protected
protected deb e'lon qilingan a'zolarga sinfdan tashqaridan kirish mumkin emas, lekin ular bolalar sinflarida (child classes) foydalanish mumkin.
Bu haqda Vorislik bobida batafsil o'rganasiz.
Hayotiy misol
- Public: Uyingizning old eshigi kabi — hamma kirishi mumkin.
- Private: Qulflangan tortma kabi — faqat egasi (yoki ishonchli do'stlar) ochishi mumkin.
- Protected: Faqat oila uchun xona kabi — bolalar (kichik sinflar) kirishi mumkin, boshqalar esa yo'q.
