Java 类中的成员变量与局部变量重名时,怎么分别出成员变量和局部变量的值

例:
static int time=3;
public static void main (String[] args){
int time =4;//局部变量可以和成员变量名相同
System.out.println("Time输出值:"+time);
}
怎么分别输出成员变量的值 time 和局部变量的值 time

可以通过给成员变量名添加前缀的方式。
比如这个题目。如果类名为A.则
System.out.println("Time输出值:"+time);//输出局部变量的值
System.out.println("成员变量Time输出值:"+A.time);//输出成员变量的值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-18
你只要弄清楚了,变量的作用域,就好解决了啊,java中,变量的作用域,一般是从定义开始,到该变量所在的花括号结束,出了花括号就不起作用了。
如果在局部变量中,第一了和成员变量相同的变量,局部变量将覆盖掉成员变量。
在这里,你如果想将两个time都输出的话,只要在类中再写一个输出的方法,或者直接 System.out.println("成员变量time:"+time);
就可以了
第2个回答  2010-04-13
楼主这样只能输出局部变量,全局变量被隐藏掉了。
可以这样输出全局变量,如下:
static int time=3;
public static void main (String[] args){
int time =4;//局部变量可以和成员变量名相同
System.out.println("Time输出值:"+time);
print();
}
void print(){
System.out.println("Time输出值:"+time);
}
第3个回答  2015-09-16
通过给成员变量名添加前缀的方式

例如 A 类 里面的成员变量 B 和 局部变量 b
访问全局变量即成员变量 直接用类名点变量名 A.B
访问局部变量 可直接打变量名 b 或者 加this 如 this.b
第4个回答  2010-04-13
默认输出是局部变量,因为你是在MAIN方法中,而MAIN方法又是STATIC的,所以不能用this关键字,正常如果重名,可以利用this.time来调用成员变量的。
相似回答