Страницы

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

пятница, 19 октября 2018 г.

Для чего пишут модификаторы private static для переменных?

Для чего пишут модификаторы private static для переменных?
Если модификатор private, тогда переменная доступна только тем методам, которые находятся "ниже", чем переменная, а, соответственно, другим классам она не доступна. Если модификатор static, тогда переменная доступна другим классам, без создания экземпляра класса, в котором переменная.
Но если private static, выходит что-то подобное: "Переменная статическая, чтобы другие классы могли использовать ее, не создавая экземпляр класса, но я не разрешаю использовать ее другим классам!". В чем смысл? :D
P.S. Вопрос из раздела Java, но, в основном, я встречаюсь с этим в Android`e, в нем нет никаких нюансов?


Ответ

Модификатор private означает, что член класса с данным модификатором доступен только объектам данного класса внутри его реализации, включая его методы. То есть за пределами определения класса он не доступен.
Модификатор static означает, что член класса с этим модификатором является общим для всех объектов этого класса. То есть для всех объектов этого класса создается единственный экземпляр этого члена. Все объекты этого класса совместно используют этот единственный экземпляр.
Но тем не менее вы можете его сделать, например, открытым для внешнего мира (public), или же закрытым (private), чтобы только объекты этого класса имели к нему доступ.
То есть функции этих модификаторов различны и не зависят друг от друга.
Первый модификатор определяет доступ к члену класса.
Второй модификатор определяет, что все объекты данного класса будут совместно использовать член класса, который определяется в единственном экземпляре за пределами каждого объекта.

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

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