Какова область видимости переменных, объявленных внутри статического блока в Java? - PullRequest
15 голосов
/ 31 марта 2012

Доступны ли переменные, объявленные внутри статического блока, где-нибудь еще?Что это за «член» (то есть, они тоже статические?)

Ответы [ 4 ]

12 голосов
/ 31 марта 2012

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

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

JDK Docs

10 голосов
/ 31 марта 2012

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

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

4 голосов
/ 31 марта 2012

они как переменные метода.Доступно только в объеме блока.

0 голосов
/ 31 марта 2012

Нет, не видно за пределами блока. Они действуют как локальные переменные - воспринимают статический блок как анонимную функцию, которая вызывается при инициализации класса. Они не являются статическими членами.

...