Sinflar uchun inline funksiyalarni yaratishning boshqa yo’li ham mavjud. Inline funksiyalarni sinf implementatsiyasida ham aniqlash mumkin. Misol uchun, f2 funksiyani inline kalit so’zi yordamida quyidagicha inline funksiyaga aylantiramiz:
Ma’lumot maydonini yopish (private) ma’lumotni himoyalaydi va sinfga qo’shimchalar kiritishni osonlashtiradi.
Inkapsulyatsiyalashning muhimligiga ikki sabab:
Ma’lumotlarni o’zgarib qolishidan himoya qilish;
Sinfga qo’shimchalar qo’shish va xatoliklarni bartaraf qilishni osonlashtirish.
4. Ma’lumot maydoni inkapsulyatsiyasi
Ma’lumot maydonini yopib qo’yish uchun private kalit so’zidan foydalaniladi. Bu jarayon ma’lumot maydoni inkapsulyatsiyasi deyiladi. Circle sinfida ma’lumot maydonini yopish uchun quyidagicha o’zgarish kiritiladi:
4. Ma’lumot maydoni inkapsulyatsiyasi
Yopiq ma’lumot maydoniga sinfdan tashqarida ob’yektlar orqali murojaat qilishniing imkoni yo’q. Ammo tez-tez mijoz uchun ma’lumot maydonini o’zgartirib turishga to’g’ri keladi. Yopiq ma’lumot maydoniga murojaat qilish uchun get funksiyadan foydalanish maqsadga muvofiq. get funksiya maydon qiymatini qaytaradi. Maydonning qiymatini o’zgartirish uchun esa set funksiyadan foydalanish lozim. set funksiya maydonga yangi qiymat o’rnatib beradi.
Get funksiya aksessor(accessor), set funksiya esa mutetor(mutator) deyiladi.
4. Ma’lumot maydoni inkapsulyatsiyasi
get funksiya quyidagicha aniqlanadi:
qaytuvchiTur getMaydonNomi()
Agar qaytuvchiTur bool turida bo’lsa, u holda get funksiya quyidagicha aniqlanish lozim:
Sinf abstraksiyasi bu – sinf foydalanilishidan sinf implementatsiyasini ajratishdir. Implementatsiya jarayonlari foydalanuvchidan inkapsulyatsiyalanadi va yashiriladi. Bu jarayon sinf inkapsulyatsiyasi deyiladi.