Sobes.tech
Middle
230

Co je to místní třída a jaké jsou její vlastnosti?

Odpověď od AI

sobes.tech AI

Lokální třída je třída definovaná uvnitř bloku, například metody, konstruktoru nebo inicializátoru.

Vlastnosti lokálních tříd:

  • Rozsah: Je dostupná pouze v bloku, ve kterém je definována.
  • Není statická: Nemůže být deklarována jako static.
  • Přístup k místním proměnným: Může odkazovat na místní proměnné a parametry okolního bloku, které jsou final nebo efektivně final.
  • Nemůže mít přístupové modifikátory: public, private, protected nejsou povoleny.
  • Dědí od tříd a implementuje rozhraní: Může rozšiřovat jiné třídy a implementovat rozhraní.
  • Názvosloví: Nemůže obsahovat modifikátor strictfp a nemůže být deklarována jako enum.

Příklad:

class Outer {
    void myMethod() {
        int localVar = 10; // efektivně final

        class LocalClass {
            void display() {
                System.out.println("Lokální proměnná: " + localVar);
            }
        }

        LocalClass local = new LocalClass();
        local.display();
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.myMethod();
    }
}