构造器是创建java对象的途径,是不是说构造器完全负责创建java对象?
不是,构造器是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建。实际上,当程序员调用构造器时,系统会为该对象分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了---这些操作都在构造器执行之前都完成了。也就是说,当系统开始执行构造器之前,系统已经创建了一个对象,只是这个对象还不能被外部程序访问,只能在该构造器中通过this来引用它。当构造器执行结束后,这个对象作为构造器的返回值被返回,通常还会赋给另一个引用类型的变量,从而让外部程序可以访问该对象。
构造器的重载
public Apple(String name,String color)
{ this.name=name;
this.color=color;
}
public Apple(String name,String color,double weight)
{ this(name,color);
this.weight=weight;
}
使用this调用另一个重载的构造器只能在构造器中使用,而且必须作为构造器执行体的第一条语句