Sobes.tech
Junior — Middle

Aký je rozdiel medzi vnútornou triedou a vloženou triedou v programovaní?

sobes.tech AI

Odpoveď od AI

U Javi (a u Androidu) ugneždena klasa је свака класа која је декларативно унутар друге класе. Угнеждене класе постоје у два типа:

  1. Статичка угнеждена класа (static nested class) — декларативна са модификатором static. Нема директан приступ нестатичким члановима спољашње класе.
  2. Унутрашња класа (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);
        }
    }
}

Главна разлика је што је унутрашња класа повезана са објектом спољашње класе и може приступити њеним нестатичким члановима, док статичка унутрашња класа то не може.