Как второй в var будет 2, так как мы обращаемся к нему за его пределами - PullRequest
0 голосов
/ 25 ноября 2018

Пожалуйста, объясните, как второй в var будет 2, так как мы обращаемся за его пределы.o / p - вход = 1 выход = 2 вход = 2

class Test
{
    public static void main(String args[])
    {
        int var = 1;
        System.out.println("in="+var);
        {
            var = 2;
            System.out.println("out="+var);
        }
        System.out.println("in="+var);
    }
}

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Здесь вы объявляете переменную и инициализируете ее значением int var = 1;

Теперь вы меняете ее значение var = 2;, поэтому значение var равно 2.

System.out.println("in="+var); будет печатать последниезначение переменной, равное 2.

0 голосов
/ 25 ноября 2018

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

static int var = 1;
public static void main(String args[])
{
    System.out.println("in="+var);
    {
        int var = 2;
        System.out.println("out="+var);
    }
    System.out.println("in="+var);
}

Затеняет внешне объявленный var.И это действительно вывод

in=1
out=2
in=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...