可以通过给成员变量名添加前缀的方式。
比如这个题目。如果类名为A.则
System.out.println("Time输出值:"+time);//输出局部变量的值
System.out.println("成员变量Time输出值:"+A.time);//输出成员变量的值
你只要弄清楚了,变量的作用域,就好解决了啊,java中,变量的作用域,一般是从定义开始,到该变量所在的花括号结束,出了花括号就不起作用了。
如果在局部变量中,第一了和成员变量相同的变量,局部变量将覆盖掉成员变量。
在这里,你如果想将两个time都输出的话,只要在类中再写一个输出的方法,或者直接 System.out.println("成员变量time:"+time);
就可以了
楼主这样只能输出局部变量,全局变量被隐藏掉了。
可以这样输出全局变量,如下:
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);
}
通过给成员变量名添加前缀的方式
例如 A 类 里面的成员变量 B 和 局部变量 b
访问全局变量即成员变量 直接用类名点变量名 A.B
访问局部变量 可直接打变量名 b 或者 加this 如 this.b
默认输出是局部变量,因为你是在MAIN方法中,而MAIN方法又是STATIC的,所以不能用this关键字,正常如果重名,可以利用this.time来调用成员变量的。