Sobes.tech
Junior

Ce înseamnă cuvântul cheie 'final' în limbajul de programare Java?

sobes.tech AI

Răspuns de la AI

Cuvântul cheie final în Java este utilizat pentru a indica faptul că o variabilă, metodă sau clasă nu pot fi modificate.

  1. Variabilă final:

    • O variabilă declarată ca final poate fi atribuită o singură dată. După atribuire, nu poate fi schimbată.
    • Pentru tipurile de date primitive, valoarea unei variabile final este o constantă.
    • Pentru tipurile de date referențiale, final înseamnă că referința către obiect nu poate fi schimbată, dar starea obiectului (câmpurile sale) poate fi modificată (cu condiția ca câmpurile obiectului să nu fie final).
    final int MAX_VALUE = 100; // variabilă primitivă finală
    
    final List<String> names = new ArrayList<>(); // variabilă de referință finală
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Eroare de compilare - nu se poate reasigna referința
    
  2. Metodă final:

    • O metodă declarată ca final nu poate fi suprascrisă în subclase.
    • Acest lucru este folosit pentru a preveni modificări nedorite ale comportamentului în ierarhia de moștenire.
    class Parent {
        final void display() {
            System.out.println("Aceasta este o metodă finală.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Eroare de compilare - nu se poate suprascrie o metodă finală
    }
    
  3. Clasă final:

    • O clasă declarată ca final nu poate avea subclase (nu poate fi moștenită).
    • Acest lucru este folosit pentru a asigura imutabilitatea clasei și pentru a preveni extinderea funcționalității acesteia.
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Eroare de compilare - nu se poate moșteni de la o clasă finală