Sobes.tech
Junior

Čo znamená kľúčové slovo 'final' v jazyku Java?

sobes.tech AI

Odpoveď od AI

Kľúčové slovo final v Jave sa používa na označenie, že premenná, metóda alebo trieda nemôžu byť zmenené.

  1. Premenná final:

    • Premenná deklarovaná ako final môže byť priradená iba raz. Po priradení už nemôže byť zmenená.
    • Pre primitívne dátové typy je hodnota final premennej konštantou.
    • Pre referenčné typy znamená final, že odkaz na objekt nemôže byť zmenený, ale stav objektu (jeho polia) môže byť zmenený (ak polia objektu nie sú final).
    final int MAX_VALUE = 100; // final primitívna premenná
    
    final List<String> names = new ArrayList<>(); // final referenčná premenná
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Chyba kompilácie - nemôže sa prepisovať odkaz
    
  2. final metóda:

    • Metóda deklarovaná ako final nemôže byť prepísaná v podtriedach.
    • Toto sa používa na zabránenie nechcených zmien v správaní v hierarchii dedičnosti.
    class Parent {
        final void display() {
            System.out.println("Toto je finálna metóda.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Chyba kompilácie - nemôže sa prepísať finálna metóda
    }
    
  3. final trieda:

    • Trieda deklarovaná ako final nemôže mať podtriedy (nemôže byť zdedená).
    • Toto sa používa na zabezpečenie nemennosti triedy a zabránenie rozšírenia jej funkčnosti.
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Chyba kompilácie - nemôže sa dediť od finalnej triedy