Страницы

Поиск по вопросам

среда, 31 октября 2018 г.

Обязательно ли использовать модификаторы доступа в Java?

Везде наблюдаю использование private. Зачем? Это же твоя программа, объявил её public и все. Зачем все это вообще?


Ответ

@m-vokhm надеюсь это вы написали или не подумамши или спросонья...
Первичная задача модификаторов доступа отнюдь не в разграничении доступа разных девелоперов, а в идее инкапсуляции, которая преследует 2 цели:
механизм для ограничения прямого доступа к некоторым компонентам объекта механизм, который облегчает связывание данных с методами/функциями, которые работают с этими данными
Приведу простой пример: посмотрите на свои белые рученьки - у большинства из вас на запястье имеются часики, у кого-то механические, у кого то электронные, у кого-то смартвотчи. Для простоты примера рассмотрим механические часики.
public функция у часов одна: показывать время, иногда дату, иногда еще что-то. publicметодов у часиков всего несколько: подвести время, завести/зарядить - всё
Внутри часиков имеется огромное количество механизмов, шестеренок, винтиков, гаечек, иногда процессоров - да мало ли чего. Все это таинство скрыто от вас и обозначено как private. Почему то никому не приходит в голову идея, все эти шестереночки объявить public - представляю что произойдет, если все эти шестеренки сделать публичными - 99% часов в мире немедленно сломаются :) - очумелые рученьки людей которые ничего не понимают в часовых механизмах, в премудростях балансиров, маятников, регуляторов, анкерных спусков и проч. - немедленно все испортят...
Конечно есть мастера - часовщики, которые знают как надо использовать анкерные спуски и к какой шестеренке что должно быть прикреплено - в нашем случае это те самые девелоперы, которые и знают как работать с private/protected членами.
Надеюсь изложил понятно.

Комментариев нет:

Отправить комментарий