我们如何在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
答案 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