public class Demo {
int x;
public static void main(String[] args) {
Demo d = new Demo();
d.x = 5; //通过对象初始化非静态成员变量
change(d); //静态方法中传对象改变非静态成员变量的值,而非静态成员变量是封装在对象中的,在内存的堆内存中,
//对象是属于引用对象,通过在堆内存中的地址能够改变值的,所以最后输出的是3
System.out.println(d.x);
}
public static void change(Demo d) {
d.x = 3;
}
}
首先来分析:Demo中有两个静态方法,一个非静态成员变量。
然后: 我们看到有静态方法调用成员变量(非静态),静态方法只能调用静态成员变量,所以这里需要用到对象
然后: main程序入口处,创建了一个当前类的对象,请看上面:
|