ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Статический блок в Java


Порой до создания объекта нужно сделать подготовительные или инициализирующие действия. Например, вычислить какие-либо статические величины, собрать системные данные, подключиться к базе данных или удалённому серверу. Для выполнения подобных действий в языке Java может использоваться статический блок.

Когда выполняется статический блок в Java

Код, расположенный в статическом блоке, будет выполнен во время запуска программы, при первой загрузке класса, ещё до того, как этот самый класс будет использоваться в программе (то есть до создания его экземпляров, вызова статических методов или обращения к полям и т. п.).

Создание статического блока в Java

Статический блок в Java создаётся внутри класса с помощью ключевого слова static:

Напишем класс TimeOfProgramStart, который содержит статический блок.

Класс содержит:


  • статическое поле timeStart, в котором будет хранится дата и время запуска программы;
  • статический блок, который инициализирует поле timeStart и выводит соответствующее сообщение об этом в консоль;
  • конструктор класса, выводящий сообщение о том, что новый объект создан и показывающий время старта программы.

Именно то обстоятельство, что статический блок выполняется при первой загрузке класса, а не при создании объекта, позволит получить время запуска программы.

В методе main главного класса программы произведём создание экземпляра класса :

Запустим программу на исполнение. Ниже представлен результат её работы.

Статический блок в Java

Таким образом было показано, что статический блок в классе выполняется де-факто при запуске программы и его выполнение никак не связано с созданием объектов данного класса и с использованием его членов. Данная возможность позволит Вам выполнить инициализирующие и подготовительные операции до обращения к определённому классу.

5/5 - (39 голосов)



Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован.