Middle
Daxil olan siniflər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
İç içe sinif, başqa bir sinifin içində təyin olunan sinifdir.
Java-da iç içə siniflərin növləri:
-
Statik iç içə siniflər (Static Nested Classes):
- Xarici sinifin nümunəsi olmadan ona daxil olmaq mümkündür.
- Xarici sinifin statik olmayan sahələrinə və metodlarına birbaşa daxil olmur.
staticaçar sözü ilə elan edilir.
-
Daxili siniflər (Inner Classes):
- Üzv daxili siniflər (Member Inner Classes):
- Xarici sinifin üzv səviyyəsində elan edilir.
- Xarici sinifin bütün üzvlərinə (xüsusən özəl olanlara da) daxil ola bilir.
- Öz nümunəsini yaratmaq üçün xarici sinifin nümunəsinə ehtiyac var.
- Yerli daxili siniflər (Local Inner Classes):
- Metod, konstruktor və ya başlanğıc bloku daxilində təyin edilir.
- Yalnız həmin metod/blok daxilində görünür.
- Xarici kontekstdə
finalvə ya effektivfinalolan yerli dəyişənlərə daxil ola bilir.
- Anonim daxili siniflər (Anonymous Inner Classes):
- Adı olmayan siniflər.
- Bir interfeysi və ya sinfi dərhal həyata keçirmək üçün istifadə olunur.
- Bir əməliyyat daxilində təyin və nümunə alınır.
- Üzv daxili siniflər (Member Inner Classes):
Statik daxili sinif nümunəsi:
class OuterClass {
private static String msg = "Hello from Outer";
static class StaticNestedClass {
public void display() {
// Xarici sinifin statik üzvlərinə daxil ola bilər
System.out.println(msg);
}
}
}
// İstifadə
// OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
// nestedObject.display();
Üzv daxili sinif nümunəsi:
class OuterClass {
private String msg = "Hello from Outer";
class InnerClass {
public void display() {
// Bütün xarici sinif üzvlərinə daxil ola bilir
System.out.println(msg);
}
}
}
// İstifadə
// OuterClass outerObject = new OuterClass();
// OuterClass.InnerClass innerObject = outerObject.new InnerClass();
// innerObject.display();
İç içə siniflərin istifadəsinin üstünlükləri:
- Qruplaşdırma: Məlkiqən əlaqəli siniflər qruplaşdırıla bilər.
- İnkapulsasiya: İç siniflər xarici sinifin özəl üzvlərinə daxil ola bilər, bu da inkapsulasiyanı yaxşılaşdırır.
- Oxunaqlıq və baxım: Köməkçi siniflər əsas sinif daxilində gizlədilir.
- Effektivlik: Daha sıx və effektiv məlumat strukturları yaratmaq üçün istifadə oluna bilər.