2 laynef laynef 于 2017.09.04 22:29 提问

Java构造方法是否有返回值

构造方法:
public book(){
// 方法体
}

定义无返回值方法:
public void book(){
//方法体
}

请问构造方法是否如void没有返回值的,还是有返回值但是不能定义返回值类型而已。

8个回答

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.05 09:03
已采纳

《The Java Programming Language》上的说法:
Constructors are invoked after the instance variables of a newly created object of the class have been assigned their default initial values and after their explicit initializers are executed.
构造方法是新创建的对象的实例变量缺省初始化以及显式初始化之后才执行的,也就是说在构造方法调用之前这个对象已经存在了,更谈不上你例子中的构造方法返回一个对象引用了。

构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)构造方法不能由编程人员调用,而要系统调用。
(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构 造器,这个构造器不执行任何代码。
(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

参考链接:http://blog.csdn.net/ftx2540993425/article/details/51433421

zy841958835
zy841958835   Ds   Rxr 2017.09.05 08:32

构造方法是有返回值的 但是不是又你定义的 而是编译器给出的
在调用构造方法时 会返回一个当前类的对象
谢谢

caozhy
caozhy   Ds   Rxr 2017.09.05 08:29

构造函数不能定义返回值
但是可以定义有类类型的普通函数
比如
public book getbook()

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2017.09.05 08:57

没有,这是Java的语法。构造函数必须与类同名,且不能有返回值。

wojiushiwo945you
wojiushiwo945you 如果有返回值了,编译器就不认为它是构造函数了。
3 个月之前 回复
csdn987q
csdn987q   2017.09.05 09:04

构造方法是有返回值的 但是不是又你定义的 而是编译器给出的
在调用构造方法时 会返回一个当前类的对象

usecf
usecf   2017.09.05 09:12

构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

yalishadaa
yalishadaa   2017.09.05 09:15

没有返回值,但是会去请求内存

qq_39654446
qq_39654446   2017.09.05 09:35

语法中是构造方法是么一头返回值的

Csdn user default icon
上传中...
上传图片
插入图片