Middle
160
Java-да статикалық және ішкі ішкі кластарды пайдалану ерекшеліктері қандай? Олардың айырмашылығы неде?
AI-дан жауап
sobes.tech AI
Статикалық ішкі сыныптар (static nested classes):
- Сыртқы сыныптың экземплярына жасырын сілтеме болмайды.
- Тек қана сыртқы сыныптың статикалық мүшелеріне (жолдар мен әдістер, соның ішінде жеке) жүгінуге болады.
staticкілт сөзі арқылы құрылады.public,protected, пакеттік немесеprivateретінде жариялануы мүмкін.- Қосымша сыныптарды топтастыру үшін пайдаланылады, олар сыртқы сыныптың нақты экземплярына тәуелді емес.
Мысал:
class Outer {
private static String staticField = "Static Outer";
private String instanceField = "Instance Outer";
static class StaticNested {
void display() {
// Тек қана Outer-дың статикалық мүшелеріне қол жеткізу
System.out.println(staticField);
// Қате: instanceField-қа қол жеткізу мүмкін емес
// System.out.println(instanceField);
}
}
}
Ішкі сыныптар (inner classes):
- Сыртқы сыныптың жасырын сілтемесі бар.
- Барлық мүшелеріне (статикалық және статикалық емес, соның ішінде жеке) жүгінуге болады.
staticкілт сөзімен жарияланбайды.public,protected, пакеттік немесеprivateретінде жариялануы мүмкін.- Тығыз байланысты қосымша сыныптарды құру үшін пайдаланылады, олар сыртқы сыныптың экземпляр мүшелеріне қол жеткізуі керек.
Мысал:
class Outer {
private static String staticField = "Static Outer";
private String instanceField = "Instance Outer";
class Inner {
void display() {
// Барлық Outer мүшелеріне қол жеткізу
System.out.println(staticField);
System.out.println(instanceField);
}
}
}
Айырмашылық:
| Ерекшелік | Статикалық ішкі сынып | Ішкі сынып |
|---|---|---|
| Сыртқы сыныпқа жасырын сілтеме | Жоқ | Бар |
| Сыртқы сыныптың мүшелеріне қол жеткізу | Тек қана статикалық | Статикалық және статикалық емес |
static қолдану |
Иә | Жоқ |
| Сыртқы сыныптың экземплярына байланыс | Жоқ | Бар |
| Қолданылуы | Экземплярға тәуелсіз көмекші сыныптар | Экземплярға тәуелді көмекші сыныптар |