当变量在本地范围和全局范围内初始化时,如何在不使用同一类中的this
关键字的情况下使用全局范围?
答案 0 :(得分:7)
class MyClass{
int i;//1
public void myMethod(){
i = 10;//referring to 1
}
public void myMethod(int i){//2
i = 10;//referring to 2
this.i = 10 //refering to 1
}
}
另见:
答案 1 :(得分:2)
如果您不使用this
,它将始终是本地变量。
答案 2 :(得分:2)
没有这个是不可能的。这种现象称为variable hiding。
答案 3 :(得分:2)
如果使用this
确定变量引用的范围,它将始终指向实例变量。
如果方法声明一个与类级变量同名的局部变量,前者将“遮蔽”后者。要从方法体内部访问类级变量,请使用this关键字。
答案 4 :(得分:2)
public class VariableScope {
int i=12;// Global
public VariableScope(int i){// local
System.out.println("local :"+i);
System.out.println("Global :"+getGlobal());
}
public int getGlobal(){
return i;
}
}