A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余志强 黑马帝   /  2011-10-2 10:53  /  2383 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造器不是没有返回值吗?为什么不能用viod修饰呢?如果她有返回值为什么又没有return呢?这是怎么回事?

7 个回复

倒序浏览
黑马网友  发表于 2011-10-2 12:01:05
沙发
The constructor is an unusual type of method because it has no return value. This is distinctly different from a void return value, in which the method returns nothing but you still have the option to make it return something else. Constructors return nothing and you don’t have an option.

---------《Think in java》

大概意思是:
void方法虽然不返回任何东西,但这是你决定的,void方法不是生来就是这样,只要改变它的返回类型,你就可以让它返回别的什么,int,String,等等。但对于构造方法,你当然没有这样的选择了。所以说,这是一个本质区别。
回复 使用道具 举报
黑马网友  发表于 2011-10-2 12:22:16
藤椅
1. 构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。
  2.构造方法必须满足以下语法规则:
       方法名必须与类名相同;
       不要声明返回类型。
    如果有一个方法,尽管方法名和类名相同,但是如果有void、int 等返回类型都不是构造方法:
    注意:当类中没有定义构造方法时将使用默认构造方法。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-2 13:20:25
板凳
构造函数是个特殊的函数,它没有返回值.这与返回值为void的函数显然不同,后者虽然也不返回任何值,但还可以让它做点别的事情,而构造函数则不允许.在程序中创建和消除一个对象的行为非常特殊,就像出生和死亡,而且总是由编译器来调用这些函数以确保它们被执行.如果它们有返回值,要么编译器必须知道如何处理返回值,要么就只能由客户程序员自己来显式的调用构造函数,这样一来,安全性就被人破坏了

构造函数的调用之所以不设返回值,是因为构造函数的特殊性决定的。从基本语义角度来讲,构造函数返回的应当是所构造的对象。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-2 15:33:57
报纸
构造函数的规定格式就是:   访问修饰符  类名称(){构造函数体};这就表示不需要返回值。void表示的是有返回值,不过这个返回值是空。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-2 17:47:11
地板
首先构造函数是没有返回值的,void也表示是有返回值的 只不过返回值为空而已,所以,不能有void

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-4 15:39:25
7#
对比下代码中的主函数 和 构造函数你 就知道了。 构造函数是不允许有返回值的,而void是返回值为空的意思。而且void这个英语单词的意思就是“无类型”。构造函数是用于对象的初始化的,也就是当对象建立时,该方法立刻会被调用。至于返回值则是由于他的特殊性所决定,楼主不必要纠结这个东西。
回复 使用道具 举报
黑马网友  发表于 2011-10-5 11:40:38
8#
构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。
如果有返回直或有void就不是构造方法了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马