我们如何在java中定义范围?

时间:2015-08-25 13:36:18

标签: java scope

我们如何在java中定义范围? 例如:

public class ScopeTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x=10;
        if(x==10){
            x=20;
            System.out.println("X:" +x);
            System.out.println("X:" +x);
        }

    }

}

输出:

X:20
X:20

我想:

X=20
X=10

1 个答案:

答案 0 :(得分:2)

您在当前范围内只能有一个局部变量。

您可以做的是将变量作为成员和局部变量。

class ScopeTest {
    static int x = 10;

    public static void main(String[] args) {
        if (x == 10) {
            int x = 20;
            System.out.println("X:" + x);
            System.out.println("X:" + ScopeTest.x);
        }
    }
}

注意:如果您有一个具有继承的实例,则可以使用super.x

class ScopeTest {
    int x = -10;

    public static void main(String[] args) {
        new SubClassTest().printX();
    }
}

class SubClassTest extends ScopeTest {
    static int x = 10;

    public void printX() {
        if (x == 10) {
            int x = 20;
            System.out.println("x:" + x);
            System.out.println("SubClassTest.x:" + SubClassTest.x);
            System.out.println("super.x:" + super.x);
        }

    }
}

打印

x:20
SubClassTest.x:10
super.x:-10