Ichki sinflar nima?
sobes.tech AI
AIdan javob
Ichki sinflar (Nested Classes) — bu boshqa sinf ichida aniqlangan sinflardir. Ular ikki asosiy turga bo‘linadi:
-
Statik ichki sinflar (Static Nested Classes): Tashqi sinfning statik a’zolariga o‘xshash. Ular tashqi sinfning statik bo‘lmagan a’zolariga to‘g‘ridan-to‘g‘ri kirishmaydi. Tashqi sinfning nusxasi bo‘lmasdan yaratiladi.
Java misoli:
class OuterClass { static int outerStaticField; int outerInstanceField; static class StaticNestedClass { void accessOuterStatic() { // OuterClass ning statik a’zosiga kirish int value = OuterClass.outerStaticField; } // outerInstanceField ga to‘g‘ridan-to‘g‘ri kirishmaydi // void accessOuterInstance() { // int value = outerInstanceField; // Kompilyatsiya xatosi // } } } -
Ichki sinflar (Inner Classes): Statik bo‘lmagan. Ular tashqi sinfning barcha a’zolariga, jumladan, statik va statik bo‘lmagan, hatto maxfiylariga ham kirishadi. Ichki sinfning nusxasi tashqi sinf nusxasiga bog‘liq. Ular tashqi sinf nusxasi yordamida yaratiladi.
Java misoli:
class OuterClass { static int outerStaticField; int outerInstanceField; class InnerClass { void accessOuterMembers() { // OuterClass ning statik va statik bo‘lmagan a’zolariga kirish int staticValue = OuterClass.outerStaticField; int instanceValue = outerInstanceField; } } }
Shuningdek, ichki sinflarning maxsus turlari ham mavjud:
- Mahalliy sinflar (Local Classes): Bu blok ichida aniqlanadi (masalan, metod, konstruktor yoki boshlang‘ich blok). Faqat shu blokda mavjud.
- Noma’lum sinflar (Anonymous Classes): Nomi yo‘q. Ular interfeys yoki sinf kengaytmasining bir martalik amalga oshirilishini yaratish uchun ishlatiladi. Bir vaqtning o‘zida aniqlanadi va nusxalanadi.
Ichki sinflarning afzalliklari:
- Mantiqiy guruhlash: Mantiqan bog‘liq bo‘lgan sinflarni guruhlash imkonini beradi, bu kodning o‘qilishi yaxshilanadi.
- Kapsüllash: Maxfiy a’zolarga kirish imkonini beradi, bu esa kuchliroq kapsüllashni ta’minlaydi.
- Oddiyroq kod: Faqat boshqa sinf tomonidan ishlatiladigan sinflar uchun kod yozishni osonlashtiradi.
QA avtomatlashtirishda qo‘llanilishi:
- Page Object Model: Ichki yoki statik ichki sinflar sahifa elementlarini (masalan, bo‘limlar, modal oynalar) asosiy Page Object sinfi ichida tashkil qilish uchun ishlatilishi mumkin.
- Voqealar uchun handlerlar / Callbacklar: Noma’lum yoki mahalliy sinflar callbacklar yoki voqea handlerlarini amalga oshirish uchun ishlatilishi mumkin, masalan, UI elementlari yoki tinglovchilar bilan ishlashda.
- Konfiguratsiya sinflari: Statik ichki sinflar tashqi sinfga xos bo‘lgan konstantalar yoki konfiguratsiya parametrlarini o‘z ichiga olishi mumkin.