Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义变量范围_Java_Variables_Scope - Fatal编程技术网

Java 自定义变量范围

Java 自定义变量范围,java,variables,scope,Java,Variables,Scope,是否允许只放置一些大括号而不使用任何if/for/etc语句来限制变量范围 例如: public void myMethod() { ... { int x; x = 5; } ... } 我可能想这样做,因此我确信我不会访问/更改范围外的变量,并且它将被预先销毁是的,这是允许的。你自己试试看吧花括号{..}将变量的范围限制在块内。 但是,可以对属于{..}块范围的全局变量进行更改 int x = -1; double y = 5

是否允许只放置一些大括号而不使用任何if/for/etc语句来限制变量范围

例如:

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

我可能想这样做,因此我确信我不会访问/更改范围外的变量,并且它将被预先销毁

是的,这是允许的。你自己试试看吧

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

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
}

你试过了吗?我试过了,而且成功了,但我不确定是否允许这样做。我也试着在网上搜索,但没有找到这样的范围。这就是为什么我决定要一个可能的复制品