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; } }