Def
Гений
(66626)
1 год назад
1) Чтобы не вызывал, 2) чтобы понимал, когда смотрит на интерфейс класса, что с этими сущностями не нужно разбираться для того, чтобы использовать класс, 3) чтобы показать, что это внутренняя реализация, которая может меняться от версии к версии и т.д.
Терр Онтал
Мудрец
(14480)
1 год назад
Например, представь что ты пишешь класс для какой-нибудь структуры данных, и хочешь знать, сколько элементов в настоящий момент в твоей структуре. Для этого тебе нужен атрибут, назовем его size, в котором будет храниться количество элементов, и метод getSize, который будет возвращать значение size. Что будет, если size будет не приватным, т.е. дать пользователю возможность изменять size напрямую? Пользователь сможет сделать x.size = 100000, и твоя логика по подсчёту размера поломается