Статические члены и модификатор static в java

Кроме обычных методов и полей класс может иметь статические поля и методы. Например, главный класс программы имеет метод main, который является статическим:

Для объявления статических переменных и методов перед их объявлением указывается ключевое слово static. Статические члены класса могут использоваться без создания объектов класса.

Ранее мы уже использовали статические переменные. В частности в классе System содержится статическая переменная out, с помощью которой выводятся данные на консоль. Например, создадим статическую переменную:

Класс Book содержит статическую переменную counter, которая увеличивается в конструкторе и ее значение присваивается переменной id.

После этого мы можем создать несколько объектов Book, и в каждом вызове конструктора переменная counter будет увеличиваться на единицу, так как она относится не к конкретному объекту, а ко всему классу Book в целом или всем объектам Book сразу:

Хотя в примере выше мы сразу инициализировали статическую переменную, но нередко для инициализации статических полей применяется статический блок. Этот блок вызывается один раз в программе при создании первого объекта данного класса:

Нередко константы на уровне класса объявляют как статические:

Статические методы, подобно статическим переменным, также относятся ко всему классу. Например, создадим новый класс Algorithm и добавим в него две функции для вычисления числа Фибоначчи и факториала:

Теперь используем их в программе:

И поскольку методы factorial и fibonachi, а также поле PI являются статическими, то мы можем к ним обратиться напрямую без создания объекта класса: Algorithm.factorial(5)

При использовании статических методов надо учитывать ограничения: в статических методах мы можем вызывать только другие статические методы и использовать только статические переменные.

Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x