public class localVariable{
public void method_1(){
int va = 0; //正确
public int pva; //错误,不能有访问权限
static int sa; //错误,不能是静态的
final int CONST = 10; //正确,可以是常量
double va =0.0; //错误,与前面的va同名
vb = 100.0; //错误,vb还未定义
double vb;
vb = 100.0; //正确,现在可以使用了
}
public void method_2(){
va = 0; //错误,method_1()中的变量va在此不可用
int CONST = 100; //正确,它与method_1()中的CONST不同
}
}
【例3.13】 局部变量与成员变量同名问题示例。
//-----------文件名localVSmember.java,程序编号3.23-----------------
public class localVSmember{
private int iVar = 100;
public void method_1(){
int iVar; //正确可以与成员变量同名
iVar = 200; //这里访问的是局部变量
this.iVar = 300; //这里访问的是成员变量
}
public void method_2(){
iVar = 400; //这里访问的是成员变量
}
}
在程序3.23中,同名的局部变量会屏蔽掉成员变量。为了访问被屏蔽的成员变量,需要使用一个前缀"this",它表示的是"本对象"。
成员变量和局部变量的区别在于其有效范围不同。成员变量在整个类内都有效,而局部变量只在定义它的成员方法内才有效。