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() {
// Може да се обърне към outerField
System.out.println("Вътрешен клас, outerField = " + outerField);
}
}
}
Основната разлика е, че вътрешният клас е свързан с обект на външния клас и може да достъпва неговите нестатични членове, а статичният вложен клас — не.