黑马程序员技术交流社区

标题: 对于空返回值,尽管方法本身不会自动返回什么,但仍然可以选择让他返回别的东西? [打印本页]

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

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

能舉個例子看看么?
作者: —__    时间: 2012-5-17 10:49
我想 楼主是对
void main{} 和int main{ return 0;} 中的int为什么必须return一个值,而void可以不需要return有疑惑吧,
首先这两个 都是构造器,int 是一个函数类型,所以我们又成为int的为构造函数,构造函数是必须返回值的,你必须按照函数类型来返回一个函数,这个返回值的目的是给系统返回一个值,用来判断你的程序执行过程是否有问题。从而达到下个程序可以判断是否要执行或作出相关的处理。

而void 是一个特殊的构造方法,他返回值是一个函数类型,比如int String 都是函数类型,这都是可以返回的,所以它其中可能有也可能没有,所以他本身的返回值就是空;一个系统默认构造的
作者: xieshuhua    时间: 2012-5-17 10:57
方法有两种,有返回值或者没有返回值。
这种void 和int的设置,是从方便编译和阅读等角度考虑的。当看到函数前有void和 int修饰时,我们不看函数内容就能知道函数的返回类型。
可以设想,如果前面不事先声明返回类型的话,将函数看一遍也能发现返回值是什么类型。
这和java的泛型命令效果是相同的,便于阅读,便于编译器编译,将问题前置到编译时期。
作者: 徐然    时间: 2012-5-17 11:04
void是有返回值的,它返回的是空,跟确定了返回值类型不同的是,确定了返回值类型的,必须加上return 某类型的值;
而void直接是return  ;也就是返回空。也就是说你可以写上return,如果不写,虚拟机会自动帮你加上
而构造器你不写return虚拟机也不会帮你加,你写了就报错,他是根本没有返回值,连空都不返




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2