25-mavzu: Ichma-ich joylashgan sinflardan foydalanish.
Ichma-ich joylashgan sinflar, bir sinf ichida boshqa sinflarni yaratish imkonini beradigan bir dasturlash konseptidir. Boshqa bir sinf ichida yaratilgan sinflarga ichma-ich joylashgan sinflar deyiladi.
Ichma-ich joylashgan sinflar quyidagi avzalliklarni taqdim etadi:
1. Encapsulation (yopish): Ichma-ich joylashgan sinflar orqali boshqa sinflarni yopish mumkin bo'lgani uchun, sinflar orasidagi ma'lumotlarni o'z-o'zini saqlaydi. Bunda, ichki sinflar yopqinlikni saqlayadi va faqat o'rtacha sinf kengaytmasi ichida ko'rinadi.
2. Kodning yorug'ligi: Ichma-ich joylashgan sinflar kodning yorug'ligini oshiradi, chunki sinflar o'zlarining bog'liq funktsiyalarni va ma'lumotlarni bir-biri bilan birlashtirishadi. Bu kodni tuzishni va o'qishni osonlashtiradi.
3. Yuqori darajada o'zaro bog'lanish: Ichma-ich joylashgan sinflar boshqa sinflarga o'zaro bog'lanishni ta'minlaydi. Bu, sinflarning tuzilishi va boshqaruvini murakkab kodlarni qo'llashsiz ham yengil va tizimli qiladi.
Ichma-ich joylashgan sinflar, kodning yorug'ligini oshirish, yopishni ta'minlash va sinflarning organizatsiyasini yaxshilashda foydalaniladigan qulay bir dasturlash asbobi sifatida hizmat qiladi. Bu sinflarni ishlatish bilan kodning nazorati osonlashadi va sinflar orasidagi aloqalar aniqlanadi.
Ichma-ich joylashgan sinflar (nested classes) C++ dasturlash tilida sinflarning ichida boshqa sinflarni yaratish imkonini beradi. Ichma-ich joylashgan sinflar quyidagi masalalarni yechishda foydalaniladi:
1. Boshqa sinflar bilan turli ma'lumotlarni yopish: Ichma-ich joylashgan sinflar orqali boshqa sinflar bilan turli ma'lumotlarni yopish va ularga o'zgaruvchilar va funktsiyalar orqali murojaat qilish imkoniyatini beradi. Bu, kodning yorug'lik va tizimlilik asoslariga rioya qilishga imkon beradi.
2. Encapsulation ni oshirish: Ichma-ich joylashgan sinflar orqali, ichki sinflar boshqa sinflardan yopqinlikni saqlab turish imkoniyatini beradi. Bu, sinflarning ichki tuzilishlarini boshqa sinflarga o'zaro bog'lash uchun foydalaniladi.
3. Organizatsiya va kodning tartibini saqlash: Ichma-ich joylashgan sinflar kodni tuzishni simplifitsirovka qiladi va shunday qilib, kodni organik va to'g'ri tartibda saqlab turishga yordam beradi.
Quyidagi misol ichma-ich joylashgan sinflar yaratish va ulardan foydalanishni ko'rsatadi:
```c++
#include
}```
Ushbu misolda `OuterClass` nomli ichma-ich joylashgan sinf yaratiladi. Uning ichida `InnerClass` nomli ichki sinf ham yaratiladi.
`OuterClass` ning obyekti yaratilganida "OuterClass constructor" matni konsolga chiqariladi. `OuterMethod` metodini chaqirganda "OuterMethod" matni chiqariladi va `InnerClass` ning obyekti yaratiladi. Keyin `InnerMethod` metodini chaqirganda "InnerMethod" matni chiqariladi.
Ichma-ich joylashgan sinflar `OuterClass` sinfi bilan bog'liqligi bilan qo'shimcha funktsionalni yaratish va sinflarni tuzishda yordam beradi.
C++ dasturlash tilida ichma-ich joylashgan sinflar (nested classes) yaratish uchun quyidagi sintaksisdan foydalaniladi:
```c++
class OuterClass {
public:
class InnerClass {
public:
// Ichki sinfning atributlari va metodlari
};
}```
Ushbu misolda `OuterClass` nomli ichma-ich joylashgan sinf yaratiladi. Uning ichida `InnerClass` nomli ichki sinf ham yaratiladi.
`OuterClass` ning obyekti yaratilganida "OuterClass constructor" matni konsolga chiqariladi. `OuterMethod` metodini chaqirganda "OuterMethod" matni chiqariladi va `InnerClass` ning obyekti yaratiladi. Keyin `InnerMethod` metodini chaqirganda "InnerMethod" matni chiqariladi.
Ichma-ich joylashgan sinflar C++ dasturlash tilida sinflarni tuzishni murakkab dasturlarni simplifikatsiya qilish uchun yordam beradi.