public class 成员和局部变量 { int i; public static void main(String args[]){ int i=10; System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量 System.out.println(this.i); }}我想输出成员变量i,咋办?
成员和局部变量 instance = new 成员和局部变量 (); System.out.println(instance .i);
静态方法里面不能调用this,所以只能新建实例来输出实例变量。
public class 成员和局部变量 { int i; public static void main(String args[]){ 成员和局部变量 a = new 成员和局部变量(); int i=10; System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量 System.out.println(a.i); }}public class 成员和局部变量 { static int i; public static void main(String args[]){ int i=10; System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量 System.out.println(成员和局部变量.i); }}
public class 成员和局部变量 { static int i; public static void main(String args[]){ int i=10; System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量 System.out.println(成员和局部变量.i); }}
System.out.println(instance .i);
public class 成员和局部变量 {
int i;
public static void main(String args[]){
成员和局部变量 a = new 成员和局部变量();
int i=10;
System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量
System.out.println(a.i);
}}public class 成员和局部变量 {
static int i;
public static void main(String args[]){
int i=10;
System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量
System.out.println(成员和局部变量.i);
}}
这句话绕的不小,还是转过来这个弯了,
静态方法由类直接调用,而this是指当前的对象,必须有对象才能实现,静态方法又不能生成对象,所以静态方法里不能呢个调用this。
static int i;
public static void main(String args[]){
int i=10;
System.out.println(i);//输出的I是10不是0 局部变量会隐藏成员变量
System.out.println(成员和局部变量.i);
}}
或者把成员变量加上static关键字变成类变量用类名引用。