У нас есть две переменные и они static => инициализируются вначале кода. Изначально не было значения, потом присвоили им значение, которое вводим.
В чем заключается вопрос: Переменные, которые находятся в static { } блоке не инициализируются вместе с теми, которые вне?
Роман
18 уровень
Вопрос по данной задачи
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
6 января 2020, 10:29
Лучше приложи код, чтобы было понятнее
0
Роман
6 января 2020, 11:56
Если я в блоке static объявлю переменную как int A, то это уже будет другое, надеюсь вы поняли о чем я)
0
Роман
6 января 2020, 11:59
Я к тому, что когда мы объявляем переменную в этом блоке она не становится статичной?
Я так понимаю, что нет. Хочу знать почему так и для чего тогда этот блок статик, если мы сначала объявляем статик переменную, а потом в этом блоке к ней обращаемся, могли бы в main методе все сделать
0
IceBergMaster
6 января 2020, 12:04полезный
1. Метод main может быть один на всю программу, а классов - десятки и сотни.
2. Локальные переменные и поля - разные вещи.
+2
Ksenia Volkova Java Developer в DXC Master
6 января 2020, 12:04полезный
Для переменных, которые ты объявляешь в статическом блоке, действуют те же правила области видимости, что и везде - тот есть такая переменная будет доступна только внутри этого блока.
Смысл статического блока в том, что он будет выполнен при загрузке класса. Метода main там вообще может не быть (собственно, в большинстве классов, с которыми приходится иметь дело в реальной жизни, его и нет). А static блок выполнится по-любому.
+2