构造器不能定义返回值类型声明,也不能使用void定义构造器没有返回值。如果为构造器定义了返回值类型声明,或使用void定义构造器没有返回值,编译时不会出错,当java会把这个所谓的构造器当成方法来处理。
为什么这样?实际上类的构造其实有返回值,当我们用new关键字来调用构造器时,构造器时返回该类的实例,可以把这个类的实例当为构造器的返回值,因此构造器的返回值类型总是当前类,因此无需定义返回值类型。注意不能在构造器里显示使用return来返回当前的类的对象,因为构造器的返回值是隐式的。
构造器不能定义返回值类型声明,也不能使用void定义构造器没有返回值。如果为构造器定义了返回值类型声明,或使用void定义构造器没有返回值,编译时不会出错,当java会把这个所谓的构造器当成方法来处理。
为什么这样?实际上类的构造其实有返回值,当我们用new关键字来调用构造器时,构造器时返回该类的实例,可以把这个类的实例当为构造器的返回值,因此构造器的返回值类型总是当前类,因此无需定义返回值类型。注意不能在构造器里显示使用return来返回当前的类的对象,因为构造器的返回值是隐式的。