Поверить не могу что не кто не даёт ясный ответ.
Кароче они нужны что бы:
*Обеспечить энкапсуляцию. Это значит что бы твой класс был одним организмом который может выжить сам по себе. Это значит что не каждый прохожий сможет взять и дать какое либо значение если это было не предусмотрено. Это защите твоего кода от неуместных действий - обеспечивает безопасность.
*Вот пример:
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 для переменных. Конечно с исключениями - зависит от цели.
*Прятать доступ к переменным
Java
Основная задача сеттеров и геттеров это устанавливать и получать?
Нет, основная их задача заключается в реализации принципа инкапсуляции, т. е. в изоляции внутреннего поведения класса от пользователя.
Паша Путилов
поведения? может все такие состояния?
Да, потому они так и называются
присваивать а не устанавливать
и не получать а отдавать
и не получать а отдавать
основная - инкапсулировать
Похожие вопросы
- Зачем нужны геттеры и сеттеры, если можно напрямую обращаться к полям структуры?
- Геттеры и сеттеры нужны всегда или можно не заморачиваться?
- Перечислите основные аннотации Spring
- Логическая задача. Информатика
- Тяжело даются задачи по программированию
- Как решить данную задачу с Codewars?
- РЕБЯТ, ПОМОГИТЕ С ЗАДАЧЕЙ ПОЖАЛУЙСТА!
- Помогите please решить задачу Java: Дано координату шахматного коня например е2.Требуется вывести все варианты хода коня
- Помогите с задачей !
- Задача Есть 2 массива. из первого массива все положительные числа переносим в начало второго массива
Часто можно видеть, что создают кучу геттеров/сеттеров в классах, где они совершенно не нужны. Это забивает код мусором. За это я не люблю Яву.