Back to questions
Яндекс
Junior — Middle
65
Каким образом внешний код может модифицировать состояние класса?
Companies where asked
Answer from AI
sobes.tech AI
Внешний код может модифицировать состояние класса несколькими способами:
- Через публичные методы (сеттеры) — класс предоставляет методы для изменения своих полей, например
setName(String name). - Через публичные поля — если поля класса объявлены как
public, внешний код может изменять их напрямую (не рекомендуется из-за нарушения инкапсуляции). - Использование паттернов проектирования — например, через паттерн Builder или через методы, возвращающие изменяемые объекты.
Пример на Kotlin (Android):
class User {
var name: String = ""
private set // запрещаем внешнее прямое изменение
fun updateName(newName: String) {
name = newName
}
}
val user = User()
user.updateName("Иван") // изменение состояния через метод
Таким образом, лучший подход — предоставлять контролируемый доступ к изменению состояния через методы класса, сохраняя инкапсуляцию.