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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东城 中级黑马   /  2013-2-16 00:45  /  2226 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在一般的函数方法体,当返回值是空时,我们就用void来修饰,而构造函数也属于一个特殊的方法,为什么不用void来修饰,使java的方法写法更一致呢?

5 个回复

倒序浏览
回复 使用道具 举报
看到你的问题我第一感觉就是你有点太“死板”了,的确不错几乎所有的方法都有一个返回值,
用于返回调用此方法之后得到的结果,特殊的当方法没有返回结果时就用“void”表示;

但“构造函数”是一个更加特殊的函数,它存在的目的就是为了给对象赋初值,它只是在对象被创建时
虚拟机自动调用的;


由于它存在的目的就只是为对象赋初值,虚拟机调用时也根本不需要“返回值”,所以也根本没必要
“刻板”的为了“所谓”的“方法更一致”而特意加上一个返回值;


而且,构造方法是不允许你直接显式的调用的!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 张洪慊 于 2013-2-16 09:58 编辑
李大强 发表于 2013-2-16 09:37
看到你的问题我第一感觉就是你有点太“死板”了,的确不错几乎所有的方法都有一个返回值,
用于返回调用此 ...

额,同意这位同学,只是希望不要把时间花费在这些问题上.

反证下:
试想如果加上void,还和成员函数有什么区别?
那创建个对象,岂不是可以调用?
回复 使用道具 举报
构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.
而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.

一般的构造函数主要用来初始化对象, 即为对象成员变量赋初始值;没有必要加上返回类型,加上返回类型就和一般方法一致了

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
构造函数是一个特殊方法,只是初始化对象,不需要返回值,不用写void  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马