Sobes.tech
Junior

Šta znači ključna reč 'final' u programskom jeziku Java?

sobes.tech АИ

Одговор од АИ

Ključna reč final u Javi se koristi za označavanje da promenljiva, metoda ili klasa ne mogu biti izmenjeni.

  1. final promenljiva:

    • Promenljiva deklarisana kao final može biti dodeljena samo jednom. Nakon dodele, ne može biti promenjena.
    • Za primitivne tipove podataka, vrednost final promenljive je konstanta.
    • Za referentne tipove, final znači da referenca na objekat ne može biti promenjena, ali stanje objekta (njegova polja) može biti promenjeno (ako polja objekta nisu final).
    final int MAX_VALUE = 100; // final primitivna promenljiva
    
    final List<String> names = new ArrayList<>(); // final referentna promenljiva
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Greška pri kompajliranju - ne može se ponovo dodeliti referenca
    
  2. final metoda:

    • Metoda deklarisana kao final ne može biti prepisana u podklasama.
    • Ovo se koristi za sprečavanje neželjenih promena u ponašanju u hijerarhiji nasleđivanja.
    class Parent {
        final void display() {
            System.out.println("Ovo je finalna metoda.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Greška pri kompajliranju - ne može se prepisati finalna metoda
    }
    
  3. final klasa:

    • Klasa deklarisana kao final ne može imati podklase (ne može biti nasledjena).
    • Ovo se koristi za obezbeđivanje nemodifikabilnosti klase i sprečavanje proširenja njene funkcionalnosti.
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Greška pri kompajliranju - ne može se naslediti od finalne klase