Sobes.tech
Back to questions
Junior — Middle
65

Каким образом внешний код может модифицировать состояние класса?

Companies where asked
ЯндексЯндекс

Answer from AI

sobes.tech AI

Внешний код может модифицировать состояние класса несколькими способами:

  1. Через публичные методы (сеттеры) — класс предоставляет методы для изменения своих полей, например setName(String name).
  2. Через публичные поля — если поля класса объявлены как public, внешний код может изменять их напрямую (не рекомендуется из-за нарушения инкапсуляции).
  3. Использование паттернов проектирования — например, через паттерн Builder или через методы, возвращающие изменяемые объекты.

Пример на Kotlin (Android):

class User {
    var name: String = ""
        private set // запрещаем внешнее прямое изменение

    fun updateName(newName: String) {
        name = newName
    }
}

val user = User()
user.updateName("Иван") // изменение состояния через метод

Таким образом, лучший подход — предоставлять контролируемый доступ к изменению состояния через методы класса, сохраняя инкапсуляцию.