见 http://zhangjunhd.blog.51cto.com/113473/17124/
对于用new 创建一个对象,我们需要弄清楚它的过程:
引用和创建一个对象的格式是:
类名 变量名;
变量名=new 类名(参数列表);
比如 Vehicle veh1=new Vehicle();
这个语句具体的执行过程是:
1.右边的“new vheicle"是以vehicle类为模板,在堆空间里创建一个vehicle类对象(也简称vehicle对象)。
2.末尾的()意味着,在对象创建后,立即调用vehicle类的构造函数,对刚生成的对象进行初始化。构造函数肯定是有的,如果没有创建,java会补上一个默认的构造函数。
3.左边的'Vehicle veh1'创建了一个vehicle类引用变量
4.“=”操作符使对象引用指向刚创建的Vehicle对象。
将上面的语句分为两个步骤:
Vechicle veh1;
veh1=new Vechicle;
这样写,就比较清楚了,有两个实体:一是对象引用变量,一是对象本身。在堆空间里创建的实体,与在栈空间里创建的实体不同。尽管它们也是确确实实存在的实体,但是似乎很难准确的“抓”住它。我们仔细研究一下第二