class Persom{
String name
Int age
Person(String name,Int age){
this.name=name;
this.age=age;
}
}
(1)用Person zhang;声明一个对象zhang时,将在栈内存为对象的引用变量zhang分配内存空间,但Person的值为空,称zhang是一个空对象。空对象不能使用,因为它还没有引用任何“实体”。
(2)对象实例化时的内存模型当执行zhang=new Person(zhangsan,20);时,会做两件事:在堆内存中为类的成员变量name、age分配内存,并将其初始化为各数据类型的默认值;接着进行显式初始化(类定义时的初始化值);最后调用构造方法,为成员变量赋值。返回堆内存中对象的引用(相当于首地址)给引用变量zhang,以后就可以通过zhang来引用堆内存中的对象了。
|