前几天有个扑街问我,java构造器是创建java对象的途径,是不是说构造器完全负责创建java对象?
我特么当时就想打他,但是又回答不上来。所以。。。
构造器是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的,实际上,当调用构造器时,系统会先为该对象分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了,这些操作在构造器执行之前就完成了,就是说,系统开始执行构造器的执行体之前,系统已经创建了一个对象,只是这个对象还不能被外部程序访问,只能在该构造器中通过this来引用。当构造器的执行体执行结束之后,这个对象作为构造器的返回值被返回,通常还会赋值给另外一个引用类型的变量,从而让外部程序可以访问该对象。