Sobes.tech
Junior — Middle

Lehet-e osztálytagokat változatlanként deklarálni azok inicializálása után?

sobes.tech MI

Válasz az MI-től

Igen, Java-ban a osztály tagjait final kulcsszóval lehet deklarálni, hogy azok az inicializálásuk után változatlanok maradjanak. Ez azt jelenti, hogy miután értéket rendelünk a változóhoz, azt már nem lehet megváltoztatni.

Példa:

public class Example {
    private final int id; // változatlan mező

    public Example(int id) {
        this.id = id; // inicializálás a konstruktorban
    }

    public int getId() {
        return id;
    }
}

Itt az id mező csak egyszer, az objektum létrehozásakor rendelhető értékhez. Ezután a id módosítására tett kísérlet fordítási hibát eredményez.

Az immutábilis objektumok esetében gyakran minden mezőt final-ná tesznek, és nem adnak meg settereket, ami segít biztosítani az osztály biztonságát és viselkedésének kiszámíthatóságát.