var中的第二个将如何为2,因为我们正在对其范围之外进行访问

时间:2018-11-25 09:43:04

标签: java core

请说明var中的第二个将如何为2,因为我们正在访问它的作用域之外。 o / p-in = 1 out = 2 in = 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 :(得分:1)

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

答案 1 :(得分:0)

在这里声明一个变量,并使用值int var = 1;对其进行初始化

现在您将其值更改为var = 2;,因此var的值为2。

System.out.println("in="+var);将打印var的最新值2。