Think in java里面有这样一句话:构造函数没有返回值,这一点同void型的方法有着本质的区别,void型的方法什么都不返回,但这是你决定的,你也可以让它返回些什么.而构造函数则什么都不返回,而且你别无选择.那请问:我能让void型的方法返回些什么呢???(它说是有你决定的),请大家为举个例子,谢谢

解决方案 »

  1.   

    他指的void应该是说函数指针void*
    也就是包括了void和 function
    概指用户编写的方法
      

  2.   

    上面这句话的主要目地,是让你能够理解:通常所说的函数(除了构造函数),它的功能和目的,是用来处理数据的(类内部的成员变量以及传入的外部参数等等)。而构造函数,则是在实力化类的时候,为类实例的成员变量进行初始化操作。
    当然,通常所说的函数,一般情况下,都会有一个返回值。当你觉得函数不需要返回值来返回信息给“使用者”的时候,那么,声明函数的时候,用void关键字就可以了。
      

  3.   

    在java里面void好像是个基础类型 System.out.println(void.class);
    在java.lang 包下面还有一个Void类
      

  4.   

    那是不是说这句话:"void型的方法什么都不返回,但这是你决定的,你也可以让它返回些什么"表达的不正确呢?beiouwolf 你能把你的意思说得详细点吗? 没看明白呢^^^ 谢谢
      

  5.   

    他说的void概指我们常说的方法
    包括了public void ** 和 public (function) **
    其实void方法也有返回的,只是这个返回是没有值的
    普通的方法就是返回的时候带了确定的值public void test(){
     ****
     return;
    }
    void方法标准写法应该象这样,只是最后的return可以忽略
    public int test(){
     ***
     return 0;
    }
    function方法有一个明确的返回值
      

  6.   

    楼上那位说函数指针的朋友,扯到一边去了吧?我终于知道什么叫“钻牛角尖”了。这个译文对原文的意思有曲解。原文是: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”这两个短语,译文的意思显然有出入。
      

  7.   

    晕,看到楼主的问题也被迷惑了,谢谢Dan1980的正解,歪曲原意的翻译真是害死人哪!
      

  8.   

    我看了下,差点都迷惑了。Void Method 方法是没返回值的,就算加了个Rrturn 也只是想当于Break,跳出函数的意思。有返回值的方法才能返回值,差点就搞混了。谢8楼了。得多看下英文版的了,省的有些中文翻译过来的意思都曲解了。
      

  9.   

    “这完全不同于一个返回值为void类型的方法,这个方法没有返回任何东西,但是你仍然有这样的选择,使得它返回别的什么东西。”而不是如上面解释的改变它的返回类型,至少英文里没有说这句话。我感觉不是翻译的问题,如果是我我也这样翻译,因为译者不能凭空区猜测作者的意图。译者的英文水平不会比我们的差。只是大师在这里也没有说清楚啊(写出一本旷世之作也是辛苦的事,难免会有瑕疵)。
      

  10.   

    而且如果如这里说的改变返回类型,那也就不是void方法了,这里的“in which the method returns nothing but you still have the option to make it return something else”。那这里的it也就无从解释了(它不是void方法吗?)。我觉得这里的意思不是改变返回类型,而是void方法确实会返回一些什么东西,比如方法控制权。
      

  11.   

    构造方法是什么都没返回,而且连void都没有,方法体里面当然没有return了。而且这一点你的确改变不了。但是void方法,虽然是无返回值的,但是又的时候你可以再方法里面加return;或者return null;return,虽然实际上没有返回什么,只是为了终止调用。我想着应该是think in java里面说的“可以选择”的意思吧
      

  12.   

    void 是没有返回值的。用到方法也可以说是过程。你可以传递参数但不能返回值。如果想要返回值,可以根据需要返回的类型选择返回值类型,但是void是不可以返回任何值的
      

  13.   

    理解能力真的很重要啊!
    “void型的方法什么都不返回,但这是你决定的,你也可以让它返回些什么。而构造函数则什么都不返回,而且你别无选择.”----这句话的意思是,是你决定让这个方法返回void类型的,你也可以改变它不让它返回的是void,而返回其他的类型如int,String等。但是对构造方法你就没机会决定它的返回类型是什么了。
    原文没问题,翻译也没问题,是楼主理解错了。