Vehicle veh1 = new Vehicle(); 上面的语句做了如下的事情: ①右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象(也简称为Vehicle对象)。 ②末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果没创建,Java会补上一个默认的构造函数。 ③左边的“Vehicle veh1”创建了一个Vehicle类引用变量。 ④“=”操作符使对象引用指向刚创建的那个Vehicle对象。(回想一下句柄与引用) 将上面的语句分为两个步骤: Vehicle veh1; veh1 = new Vehicle(); 这样写,就比较清楚了,有两个实体:一是对象引用变量,一是对象本身。在堆空间里创建的实体,与在栈空间里创建的实体不同。尽管它们也是确确实实存在的实体,但是似乎很难准确的“抓”住它。我们仔细研究一下第二句,找找刚创建的对象叫什么名字?有人说,它叫“Vehicle”。不对,“Vehicle”是类(对象的创建模板)的名字。一个Vehicle类可以据此创建出无数个对象,这些对象不可能全叫“Vehicle”。对象连名都没有,没法直接访问它。我们只能通过对象引用来间接访问对象。
java对象的创建和初始化
最新推荐文章于 2024-11-01 14:48:20 发布