Java变量作用域
当在局部范围和全局范围内初始化变量时,如果不在同一类中使用Java变量作用域,java,scope,Java,Scope,当在局部范围和全局范围内初始化变量时,如果不在同一类中使用this关键字,我们如何使用全局范围?如果不使用this,它将始终是局部变量。没有它是不可能的。这种现象被称为 另请参见: 如果您使用此来确定变量引用的范围,它将始终指向实例变量 如果一个方法声明了一个与类级变量同名的局部变量,则前者将“隐藏”后者。要从方法体内部访问类级变量,请使用this关键字。我不确定您在Java上下文中所说的“全局范围”是什么意思。对于这个问题,一个代码示例会有很大帮助。为什么要避免使用“this”?考虑到J
this
关键字,我们如何使用全局范围?如果不使用this
,它将始终是局部变量。没有它是不可能的。这种现象被称为
另请参见:
此
来确定变量引用的范围,它将始终指向实例变量
如果一个方法声明了一个与类级变量同名的局部变量,则前者将“隐藏”后者。要从方法体内部访问类级变量,请使用this关键字。我不确定您在Java上下文中所说的“全局范围”是什么意思。对于这个问题,一个代码示例会有很大帮助。为什么要避免使用“this”?考虑到Java没有全局作用域,我不理解这个问题。您能澄清一下吗?如果您用这个来定义变量引用的范围,它将始终指向字段变量。@Vladimir您是对的。我已经改正了。这是一个错误。如果本地作用域中没有与实例变量同名的变量,则可以使用实例变量而不使用
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;
}
}
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;
}
}