Sobes.tech
Junior — Middle

Можете ли да обясните какво е неизменяем клас в Java и как се създава?

sobes.tech AI

Отговор от AI

Незменяемият клас в Java е клас, обектите на който не могат да бъдат променяни след създаването им. Тези класове са полезни за осигуряване на безопасност на данните и многопоточност.

За създаване на незменяем клас трябва:

  • Да направите класа final, за да не може да бъде наследен и поведението му да бъде променено.
  • Всички полета да бъдат private и final.
  • Да не предоставяте сетъри (методи за промяна на полетата).
  • Да инициализирате всички полета чрез конструктора.
  • Ако полетата са променяеми обекти, да връщате техни копия в геттерите, за да избегнете промяна на вътрешното състояние.

Пример:

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}