Java

Основная задача сеттеров и геттеров это устанавливать и получать?

Поверить не могу что не кто не даёт ясный ответ.

Кароче они нужны что бы:

*Обеспечить энкапсуляцию. Это значит что бы твой класс был одним организмом который может выжить сам по себе. Это значит что не каждый прохожий сможет взять и дать какое либо значение если это было не предусмотрено. Это защите твоего кода от неуместных действий - обеспечивает безопасность.

*Вот пример:

Static Age.

Любой человек может взять и сделать так:

Age = -5. Разве это имеет смысл? Age не может быть меньше 0 а значит это должно ошибку кинуть а не принять как действительно.

setAge(int Age){

If(age<0){

Print("error")

} else {

this.Age = Age

}

}

*Setter и getter могут ставить условия или что то делать с переменными когда мы их даем или получаем.

*Setter и getter помогает избегать багов. К примеру ты будешь знать что ты точно будешь передавать только значения которые будут уместны.

*Когда ты пишешь код ты должен всегда стараться обеспечивать энкапсуляцию если ты знаешь что твой класс будет создан с помощью new.

*Энкапсуляцию желательно не ломать а принять, понять и полюбить.

====

По сути что бы обеспечить энкапсуляцию тебе надо:

*Думать о переменных как о методах (они по сути ими становятся в каком то примерном смысле)

*Избегать использование public как и static для переменных. Конечно с исключениями - зависит от цели.
*Прятать доступ к переменным
РТ
Роман Токар
12 673
Лучший ответ
Виталий Червинский Инкапсуляция.
Часто можно видеть, что создают кучу геттеров/сеттеров в классах, где они совершенно не нужны. Это забивает код мусором. За это я не люблю Яву.
Нет, основная их задача заключается в реализации принципа инкапсуляции, т. е. в изоляции внутреннего поведения класса от пользователя.
Joshi Jamamoto
Joshi Jamamoto
80 207
Паша Путилов поведения? может все такие состояния?
Да, потому они так и называются
Nazar Jorayev
Nazar Jorayev
62 311
присваивать а не устанавливать
и не получать а отдавать
T1
Tt 1956 1956Tt
5 536
основная - инкапсулировать