黑马程序员技术交流社区

标题: 小问题一个,却让我还能疑惑,求解 [打印本页]

作者: Uncle.Lee    时间: 2013-11-22 22:57
标题: 小问题一个,却让我还能疑惑,求解
本帖最后由 Uncle.Lee 于 2013-11-23 11:36 编辑
  1. class Example{
  2.         
  3.         public int exam_1(){
  4.                 exam_2();
  5.         }
  6.         
  7.         public int exam_2(){
  8.                 return 1;
  9.         }
  10. }
复制代码
上面的例子中的exam_1调用了exam_2,exam_2里的有返回值,exam_1应该就不用写返回值了吧?

我看毕老师视频里有类似的调用,并没有写。。

我写程序的时候,eclipse却提醒我写返回值,求解,这样调用到底行不行????
作者: 姚宏    时间: 2013-11-22 23:09
int exam_1(){
      
                return exam_2();
     }
上面这样写可以,exam_1方法的返回类型是int,没有返回值你这是要....?
作者: Misaeじ    时间: 2013-11-22 23:19
这里需要的是int类型的返回值,你这里却调了一个方法,你这个方法虽然是返回int类型,但java虚拟机编译的时候,不会运行你这个方法 ,不知道这个方法的结果      
作者: ysunday    时间: 2013-11-22 23:38
楼上两位说的已经很明白了,
其实代码你翻译一下你就懂了
        public int exam_1(){
                exam_2();
        }
这个代码的exam_2();这个翻译过来就是return到你调用这个函数的那一行一个1,那么你这个函数翻译过来就是这样
public int exam_1(){
      1;
}

你的函数声明了有个 int返回值,当然对应的就有个return语句,而你exam_2里边那个return 1是说返回到exam_1中的1的那一行一个1.并不是代表你的 return 1;这句话添加到 exam_1的1的那行。

说的有点绕,但是仔细理解下就是这样

作者: 殷婷婷    时间: 2013-11-22 23:43

复制代码

作者: che201311    时间: 2013-11-22 23:53
1 exam_2()返回的是INT类型的
2 虽然你 exam1()调用了exam_2()却无返回值
作者: 樊志伟    时间: 2013-11-23 02:41
exam1()方法里面必须得写return
你见过毕老师有过类似的调用估计是毕老师exam1方法代码的返回值类型是void,如果是void的话就不用return
作者: 殷婷婷    时间: 2013-11-23 08:59
殷婷婷 发表于 2013-11-22 23:43

咦,昨天写得很详细的说,怎么不见了?不知道,不了解。。。。迷路了。。。
作者: Uncle.Lee    时间: 2013-11-23 11:30
殷婷婷 发表于 2013-11-23 08:59
咦,昨天写得很详细的说,怎么不见了?不知道,不了解。。。。迷路了。。。 ...

:L 貌似真迷路了噢




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