Изучение Java Мне иногда учили использовать модификатор доступа private
, чтобы не подвергать "конфиденциальную информацию" другим классам, как если бы это могло открыть законное отверстие безопасности. Но я никогда не сталкивался с ситуацией, когда ограничение видимости элементов было более чем удобством для моделирования программы объектно-ориентированным способом.
Являются ли private
поля и функции в Java-классах более "безопасными", чем в противном случае?
EDIT - сборник лучших ответов.
Почему private
не означает "безопасный":
- декомпиляторы позволяют статический просмотр байт-кода
- отражает библиотеку времени выполнения для частных членов.
Что private
полезно для:
- поддерживаемость кода из-за принудительного доступа на уровне метода
- модульность кода, скрывая детали реализации