通过new关键字调用构造器时,确实返回了该类的对象,但是这个对象并不是完全由构造器创建。实际上,当我们调用构造器时,系统会先为该对象分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了——在构造器执行之前就完成了!也就是说,当系统开始执行构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能被外部程序访问,只能在构造器之中通过this引用。当构造器执行体执行完成之后,这个对象作为引用的返回值被返回,从而让外部程序可以访问改对象。
通过new关键字调用构造器时,确实返回了该类的对象,但是这个对象并不是完全由构造器创建。实际上,当我们调用构造器时,系统会先为该对象分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了——在构造器执行之前就完成了!也就是说,当系统开始执行构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能被外部程序访问,只能在构造器之中通过this引用。当构造器执行体执行完成之后,这个对象作为引用的返回值被返回,从而让外部程序可以访问改对象。