Junior — Middle
Фарқи байни синфи дохилӣ ва синфи дарунӣ дар барномасозӣ чист?
sobes.tech AI
Ҷавоб аз AI
Дар Java (ва Android) сохташтаи синф ҳар як синфест, ки дар дохили дигар синф эълон шудааст. Сохташтаи синфҳо ба ду навъ тақсим мешаванд:
- Сохташтаи синфи статикӣ (static nested class) — бо модификатори
staticэълон мешавад. Манъ аст, ки мустақиман ба аъзои ғайристатикӣ (нестатикӣ) дар синфи беруна дастрасӣ пайдо кунад. - Синфи дохилӣ (inner class) — синфи дохилӣ бе модификатори
static. Бо намунаи синфи беруна пайваст аст ва ба майдонҳо ва методҳои ғайристатикӣ дастрасӣ дорад.
Масалан:
class Outer {
private int outerField = 10;
static class StaticNested {
void print() {
// Манъ аст, ки мустақиман ба outerField дастрасӣ пайдо кунад
System.out.println("Синфи дохилӣ статикӣ");
}
}
class Inner {
void print() {
// Дастрасӣ мумкин аст
System.out.println("Синфи дохилӣ, outerField = " + outerField);
}
}
}
Яке аз фарқиятҳои асосӣ он аст, ки синфи дохилӣ бо объекте аз синфи беруна пайваст аст ва метавонад ба аъзои ғайристатикӣ дастрасӣ пайдо кунад, дар ҳоле ки синфи дохилӣ статикӣ — наметавонад.