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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

构造器是一种特殊类型的方法,因为他没有返回值。这与返回值为空(void)明显不同。对于空返回值,尽管方法本身不会自动返回什么,但仍然可以选择让他返回别的东西,构造器则不会返回任何东西,你别无选择(new表达式确实返回了对新建对象的引用,但构造器本身并没有任何返回值)。

選擇讓它返回別的東西?什麽東西?什麽東西是void可以返回的,而構造器不能返回了?

能舉個例子看看么?

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
我想 楼主是对
void main{} 和int main{ return 0;} 中的int为什么必须return一个值,而void可以不需要return有疑惑吧,
首先这两个 都是构造器,int 是一个函数类型,所以我们又成为int的为构造函数,构造函数是必须返回值的,你必须按照函数类型来返回一个函数,这个返回值的目的是给系统返回一个值,用来判断你的程序执行过程是否有问题。从而达到下个程序可以判断是否要执行或作出相关的处理。

而void 是一个特殊的构造方法,他返回值是一个函数类型,比如int String 都是函数类型,这都是可以返回的,所以它其中可能有也可能没有,所以他本身的返回值就是空;一个系统默认构造的

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
方法有两种,有返回值或者没有返回值。
这种void 和int的设置,是从方便编译和阅读等角度考虑的。当看到函数前有void和 int修饰时,我们不看函数内容就能知道函数的返回类型。
可以设想,如果前面不事先声明返回类型的话,将函数看一遍也能发现返回值是什么类型。
这和java的泛型命令效果是相同的,便于阅读,便于编译器编译,将问题前置到编译时期。
回复 使用道具 举报
void是有返回值的,它返回的是空,跟确定了返回值类型不同的是,确定了返回值类型的,必须加上return 某类型的值;
而void直接是return  ;也就是返回空。也就是说你可以写上return,如果不写,虚拟机会自动帮你加上
而构造器你不写return虚拟机也不会帮你加,你写了就报错,他是根本没有返回值,连空都不返
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马