Junior
Həll edilən siniflər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
İç içe sinflər, başqa bir sinif daxilində elan olunan sinflərdir. İki əsas növə bölünürlər: statik iç içə sinflər (sinfin statik üzvləri) və daxili sinflər (statik olmayan üzvlər).
Statik iç içə sinflər:
- Xarici siniflə əlaqəlidir, onun nümunəsi ilə deyil.
- Yalnız xarici sinfin statik üzvlərinə müraciət edə bilərlər.
- Xarici sinfin nümunəsi olmadan yaradıla bilərlər.
Daxili sinflər:
- Xarici sinfin nümunəsi ilə əlaqəlidir.
- Xarici sinfin bütün üzvlərinə (statik və statik olmayanlar), o cümlədən private-ə daxil ola bilərlər.
- Yaradılmaq üçün xarici sinfin nümunəsi tələb olunur.
İstifadə nümunələri:
- Qruplaşdırma: Məntiqi əlaqəli sinflər kodun oxunuşunu və təşkilatını yaxşılaşdırmaq üçün birləşdirilə bilər.
- İnkapulsasiya: Daxili sinflər xarici sinfin private üzvlərinə giriş imkanı verir, bu da həyata keçirmə detalları üçün kapsülləşməyə imkan verir.
- Hadisə dinləyiciləri (Java): Tez-tez anonim daxili sinflər yaratmaq üçün istifadə olunur.
- Yardımçı sinflər: Yalnız xarici sinif tərəfindən istifadə olunan kiçik sinflər.
// Statik daxili sinif nümunəsi
class OuterClass {
static int outerStaticField = 1;
int outerInstanceField = 2;
static class StaticNestedClass {
void display() {
System.out.println("Xarici statik sahə: " + outerStaticField);
// outerInstanceField-ə birbaşa daxil olmaq mümkün deyil
}
}
}
// Daxili sinif nümunəsi
class AnotherOuterClass {
int outerField = 10;
class InnerClass {
void display() {
System.out.println("Xarici sahə: " + outerField); // Xarici sinfin sahəsinə giriş
}
}
}
Müqayisə cədvəli:
| Xüsusiyyət | Statik iç içə sinif | Daxili sinif |
|---|---|---|
| Əlaqə | Xarici siniflə | Xarici sinfin nümunəsi ilə |
| Xarici üzvlərə giriş | Yalnız statik | Bütün üzvlər (private daxil olmaqla) |
| Nümunə tələb edir | Xeyr | Bəli |
| Statik üzvlər saxlaya bilər | Bəli | Xeyr (yalnız sabitlər) |