自定义变量范围

时间:2017-04-17 23:39:33

标签: java variables scope

是否允许在没有任何if / for / etc语句的情况下放置一些花括号来限制变量范围?

一个例子:

public void myMethod()
{
    ...
    {
        int x;
        x = 5;
    }
    ...
}

我可能想要这样做,所以我肯定知道我不会在范围之外访问/更改变量并且它会被预先销毁

2 个答案:

答案 0 :(得分:3)

是的,它被允许了。试试看你自己

答案 1 :(得分:2)

花括号{ .. }将变量的范围限制在块中 但是,可以对属于{ .. }块范围的全局变量进行更改。

int x = -1;
double y = 5;
{
    x = 10;
    y = 100;
    char c = 'A';
}
System.out.println(x + " " + y); // 10 100.0
System.out.println(c); // Compile time error and out of scope

{
    c = 'B';  // Compile time error and out of scope
}