Java变量范围
当变量在本地范围和全局范围内初始化时,如何在不在同一个类中使用this
关键字的情况下使用全局范围?
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 } }
另见:
- 暗影声明
- 什么,是可变阴影使用的换IN-A-Java的类
如果你不使用它,它将永远是局部变量。
没有这个是不可能的。 这种现象称为变量隐藏 。
如果您使用this
范围确定变量引用,它将始终指向实例变量。
如果方法声明一个与类级变量同名的局部变量,前者将“遮蔽”后者。 要从方法体内部访问类级变量,请使用this关键字。
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; } }