На статических и нестатических блоках инициализации в Java

Если Вы просто хотите что-то простое:

' 

number_format ()

. number_format($money, 2);

number_format ()

8
задан non sequitor 15 October 2009 в 20:41
поделиться

2 ответа

Нестатический блок выполняется, когда создается «экземпляр» класса.

Таким образом,

System.out.println(Main.m.toString());

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

Попробуйте сначала создать экземпляр

 Main main = new Main();

, и вы увидите то же сообщение, что и B

Как вы знаете, переменные класса (объявленные с использованием static) входят в область действия при использовании экземпляров блоков.

См. также:

Анонимные блоки кода в Java

13
ответ дан 5 December 2019 в 08:53
поделиться

В A у вас есть инициализатор экземпляра. Он будет выполняться каждый раз, когда вы создаете новый экземпляр A .

Если несколько потоков создают экземпляры A , этот код сломается. И даже в одном потоке обычно не требуется, чтобы один экземпляр изменял состояние, которое совместно используется каждым экземпляром. Но если вы это сделали, это один из способов добиться этого.

6
ответ дан 5 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: