|
1 / 1 / 1
Регистрация: 01.06.2017
Сообщений: 8
|
|||||||||||
Геттеры и сеттеры10.08.2017, 22:49. Показов 2678. Ответов 2
Привет, я начинающий в программировании. Просматривал онлай уроки программирования Java и был урок о геттерах и сеттерах. На сколько я понял с их помощью мы можем пользоваться и менять частные объекты другого класса. С помощью сеттера я смог изменить значение частной переменной. Но не понимаю для чего нам нужен геттер, если и без него все работает? Для чего он вообще нужен, если не трудно то доступной для простолюдина языке или примером.
0.50
|
|||||||||||
| 10.08.2017, 22:49 | |
|
Ответы с готовыми решениями:
2
Геттеры и сеттеры Геттеры и Сеттеры в Java (Объясните чайнику)
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 11.08.2017, 00:06 | |
|
У тебя вообще может не быть поля а, оно например может вычисляться из фазы луны. Тому, кто пользуется классом этого знать не обязательно, он просто вызывает getA, не задумываясь, откуда оно берется. Для простоты можешь считать, что так принято, так работают все фреймворки, так пишут все программисты.
2
|
|
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
|
| 11.08.2017, 07:04 | |
Сообщение было отмечено userusersilly как решение
Решение
Добавлю, это делается по нескольким причинам
1 setter() позволяет проконтролировать входные данные и послать клиента лесом если он пытается записать в класс значение за пределами диапазона. Если скажем в руководстве на класс написано что входные значения должны быть в диапазоне 1...10 а клиент решил туда записать -120 класс его вежливо отошьет выдав например исключение с сообщением. И это гораздо лучше, чем если класс молча проглотит неверное входное значение и выдаст также молча неверный результат. Ошибка в таком случае может быть очень трудно уловимой. 2. getter() как правильно сказали выше, может вообще не иметь поля под собой. В случае когда поле есть getter() и setter() играют роль прокладки. Для чего? Допустим класс принимает значения 1...10 , рассчиытвает данные и выдает обратно. Класс выпустили, все довольны, все работает. Прошло время, изменился стандарт какой нибудь, и в классе поменяли программу расчета. По новым правилам программа расчета принимает значения -.5...+5 Если тупо изменить программу расчета класса, то весь софт клиента улетит в мусор, и жить такому классу останется минут 5... Поэтому setter() принимает как и раньше от клиента 1..10 переводит их в -5...5 и записывает в поле это значение, а новая программа считает корретно и выдает клиенту результат. Обратная ситуация. Класс выпустили все пучком, все довольны. Поменялся стандарт. Клиент пишет письмо "так и так по новому стандарту я вам отдаю 1..10 вы мне должны выдавать значения не больше 1000 в любом случае". В этом случае в getter() вставляется ограничитель который режет выходные данные и отдает клиенту значения не более 1000. Очень полезная вещь на самом деле.
3
|
|
| 11.08.2017, 07:04 | |
|
Помогаю со студенческими работами здесь
3
Сделать геттеры и сеттеры для наследников в родительском классе Геттеры и Сеттеры Геттеры и сеттеры Классы (сеттеры и геттеры) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|