Middle
Ichki sinflar nima va ular dasturlashda qanday qo'llaniladi?
sobes.tech AI
AIdan javob
Ichki sinflar — bu boshqa sinf ichida e'lon qilingan sinflardir. Ular faqat bir joyda ishlatiladigan sinflarni mantiqan guruhlash, inkapsulyatsiyani oshirish va kodni o'qilishini yaxshilash imkonini beradi.
Ichki sinflar quyidagilarga bo'linadi:
- Statik (Statik Ichki Sinflar): Ular tashqi sinfning statik bo'lmagan a'zolariga kirish huquqiga ega emas. Ular tashqi sinf nusxasidan holda yaratilishi mumkin.
- Nostatik (Ichki Sinflar): Ular tashqi sinfning barcha a'zolariga (xususiylar ham) kirish huquqiga ega. Nostatik ichki sinf nusxasini yaratish uchun tashqi sinf nusxasi kerak.
Qo'llanilishi:
- Implementatsiyani yashirish: Ichki sinf yordamchi sinf sifatida ishlatilishi mumkin, uning implementatsiya tafsilotlari tashqaridan kirish uchun yopiq bo'lishi kerak.
- Guruhlash: Bir-biriga yaqin bog'langan sinflarning mantiqan birlashishi.
- Callback / tinglovchilarni amalga oshirish: Ko'pincha interfeyslar yoki abstrakt sinflarni amalga oshirish uchun noma'lum ichki sinflar yaratishda ishlatiladi.
- Iteratsiya qilish: Ichki sinf kolleksiyaning ichki holatiga kirish huquqiga ega bo'lgani uchun, iteratorni amalga oshirish uchun qulay.
Misol (Java):
class OuterClass {
private int outerField;
// Statik ichki sinf
static class StaticNestedClass {
void print() {
// outerField ga kirish imkoniyati yo'q
System.out.println("StaticNestedClass dan");
}
}
// Nostatik ichki sinf
class InnerClass {
void print() {
// outerField ga kirish
System.out.println("outerField: " + outerField);
}
}
}
// Statik ichki sinf nusxasini yaratish
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();
// Ichki sinf nusxasini yaratish
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();