Sobes.tech
Junior

Mit jelent a 'final' kulcsszó a Java programozási nyelvben?

sobes.tech MI

Válasz az MI-től

A final kulcsszó Java-ban arra szolgál, hogy jelezze, hogy egy változó, metódus vagy osztály nem módosítható.

  1. final változó:

    • Egy final-ként deklarált változó értéke csak egyszer adható meg. Az értékadás után nem módosítható.
    • Az alapvető típusok esetén a final változó értéke egy konstans.
    • Referencia típusok esetén a final azt jelenti, hogy a referencia az objektumra nem módosítható, de az objektum állapota (mezői) módosíthatók (ha a mezők maguk nem final-ek).
    final int MAX_VALUE = 100; // végleges primitív változó
    
    final List<String> names = new ArrayList<>(); // végleges referencia változó
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Fordítási hiba - nem lehet újra hozzárendelni a referenciát
    
  2. final metódus:

    • Egy final-ként deklarált metódus nem írható felül alosztályokban.
    • Ez megakadályozza a nem kívánt viselkedésváltoztatásokat az öröklődési hierarchiában.
    class Parent {
        final void display() {
            System.out.println("Ez egy végleges metódus.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Fordítási hiba - nem írható felül egy végleges metódus
    }
    
  3. final osztály:

    • Egy final-ként deklarált osztály nem öröklődhet (nem lehet alosztály).
    • Ez biztosítja az osztály változtathatatlanságát és megakadályozza a funkcionalitás bővítését.
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Fordítási hiba - nem örökölhető egy végleges osztályból