Junior — Middle
Jakie zasady należy stosować podczas tworzenia klasy w Java, aby uczynić ją niezmienną?
sobes.tech AI
Odpowiedź od AI
Aby uczynić klasę w Java niezmienną (immutable), należy przestrzegać kilku zasad:
- Zadeklarować klasę jako
final— aby nie można było tworzyć podklas, które zmieniłyby zachowanie. - Ustawić wszystkie pola jako
privateifinal— aby nie można było ich zmienić po inicjalizacji. - Nie udostępniać setterów (metod do zmiany pól).
- Inicjalizować wszystkie pola przez konstruktor.
- Jeśli pola są odwołaniami do obiektów zmiennych (np. tablice, kolekcje), tworzyć ich kopie podczas przypisywania i zwracania z getterów, aby zewnętrzne zmiany nie wpływały na stan wewnętrzny.
Przykład:
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;
}
}
Taka klasa po utworzeniu obiektu nie pozwala na zmianę jego stanu, co jest przydatne dla bezpieczeństwa wątków i przewidywalności zachowania.