Java变量范围

时间:2010-12-30 07:32:28

标签: java scope

当变量在本地范围和全局范围内初始化时,如何在不使用同一类中的this关键字的情况下使用全局范围?

5 个答案:

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