Think in java里面有这样一句话:构造函数没有返回值,这一点同void型的方法有着本质的区别,void型的方法什么都不返回,但这是你决定的,你也可以让它返回些什么.而构造函数则什么都不返回,而且你别无选择.那请问:我能让void型的方法返回些什么呢???(它说是有你决定的),请大家为举个例子,谢谢
他说的void概指我们常说的方法 包括了public void ** 和 public (function) ** 其实void方法也有返回的,只是这个返回是没有值的 普通的方法就是返回的时候带了确定的值public void test(){ **** return; } void方法标准写法应该象这样,只是最后的return可以忽略 public int test(){ *** return 0; } function方法有一个明确的返回值
楼上那位说函数指针的朋友,扯到一边去了吧?我终于知道什么叫“钻牛角尖”了。这个译文对原文的意思有曲解。原文是: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.大致意思是说:void方法虽然不返回任何东西,但这是你决定的,void方法不是生来就是这样,只要改变它的返回类型,你就可以让它返回别的什么,int,String,等等。但对于构造方法,你当然没有这样的选择了。所以说,这是一个本质区别。作者根本没有说“You can make a void method to return something.”而是说“You have the option to make a void method to return something else.”注意“have the option”和“something else”这两个短语,译文的意思显然有出入。
而且如果如这里说的改变返回类型,那也就不是void方法了,这里的“in which the method returns nothing but you still have the option to make it return something else”。那这里的it也就无从解释了(它不是void方法吗?)。我觉得这里的意思不是改变返回类型,而是void方法确实会返回一些什么东西,比如方法控制权。
构造方法是什么都没返回,而且连void都没有,方法体里面当然没有return了。而且这一点你的确改变不了。但是void方法,虽然是无返回值的,但是又的时候你可以再方法里面加return;或者return null;return,虽然实际上没有返回什么,只是为了终止调用。我想着应该是think in java里面说的“可以选择”的意思吧
也就是包括了void和 function
概指用户编写的方法
当然,通常所说的函数,一般情况下,都会有一个返回值。当你觉得函数不需要返回值来返回信息给“使用者”的时候,那么,声明函数的时候,用void关键字就可以了。
在java.lang 包下面还有一个Void类
包括了public void ** 和 public (function) **
其实void方法也有返回的,只是这个返回是没有值的
普通的方法就是返回的时候带了确定的值public void test(){
****
return;
}
void方法标准写法应该象这样,只是最后的return可以忽略
public int test(){
***
return 0;
}
function方法有一个明确的返回值
“void型的方法什么都不返回,但这是你决定的,你也可以让它返回些什么。而构造函数则什么都不返回,而且你别无选择.”----这句话的意思是,是你决定让这个方法返回void类型的,你也可以改变它不让它返回的是void,而返回其他的类型如int,String等。但是对构造方法你就没机会决定它的返回类型是什么了。
原文没问题,翻译也没问题,是楼主理解错了。