先贴上代码一小段:
public class Main {
int x =1;
public static void main(String[] args) {
Main A = new Main();
int m = A.x; //main为静态方法,A.x为实例变量,试问为什么能从静态方法中引用非静态变量?
}
}
看书看到头晕,跟几个同学都迷惑在这一句中,求大侠解释!
public class Main {
int x =1;
public static void main(String[] args) {
Main A = new Main();
int m = A.x; //main为静态方法,A.x为实例变量,试问为什么能从静态方法中引用非静态变量?
}
}
看书看到头晕,跟几个同学都迷惑在这一句中,求大侠解释!
之所以不能直接引用,是因为非静态变量必须有某个对象实例化了才会存在
而静态方法无需任何实例化对象就已经存在
这样如果引用非静态变量,引用哪个实例对象的呢?A.x不一样,A是一个实例化了的对象,当然可以引用A.x
访问x的是A,而A是一个局部变量