Sobes.tech
Junior — Middle

'Dəyişməz obyekt' termini nə deməkdir və onun əsas xüsusiyyətləri nələrdir?

sobes.tech Süni İntellekt

AI-dan cavab

Иммутабельный объект — это объект, состояние которого нельзя изменить после создания.

Ключевые особенности:

  • Все поля объекта объявлены как final и инициализируются только в конструкторе.
  • Нет методов, которые изменяют внутреннее состояние объекта (нет сеттеров).
  • Если объект содержит ссылки на изменяемые объекты, они копируются при создании (глубокое копирование) или возвращаются копии, чтобы избежать изменения внутреннего состояния.

Преимущества:

  • Потокобезопасность без дополнительной синхронизации.
  • Простота понимания и отладки.

Пример иммутабельного класса в Java:

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

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

После создания объекта Person его имя и возраст нельзя изменить.