黑马程序员技术交流社区

标题: 这道题的答案?为什么?———入学视频班考试题 [打印本页]

作者: suihs11    时间: 2015-1-16 19:28
标题: 这道题的答案?为什么?———入学视频班考试题
本帖最后由 suihs11 于 2015-1-16 19:29 编辑

下面Java语言方法的说法错误的是:
A:方法调用时参数类型必须符合方法的定义
B:方法只能声明一个返回值
C:如果方法没有返回值必须声明返回为void
D:如果方法定义为返回void,则方法中不能出现return语句

就这一个题完全没有头绪,看着都像对的啊

作者: 银离子    时间: 2015-1-16 20:30
D   返回void时,return可有可无
作者: xiaomin1992    时间: 2015-1-16 20:35
void为空的意思,代表函数类型是无返回值类型,免用return语句。但是加上也是没有关系的
作者: bluebloodant    时间: 2015-1-16 21:02
d是错的的的的的
作者: yukuoyuan    时间: 2015-1-16 21:03
新手路过,,看答案
作者: 邓士林    时间: 2015-1-16 21:14
本帖最后由 邓士林 于 2015-1-16 21:23 编辑

D,错误,可以出现return,return;不返回任何职就行了。A项:调用方法时要求对应参数类型必须相同,不然编译失败,报错。错误信息:无法将某类型(如String)应用到给定应用类型
B项:由于Java中没有传引用,对参数都是传值,而且对于方法只有一个类型,比如void,int或者自定义的,不能能出现这样int void,两个类型修饰符,严格说,方法最多只有一个返回值,void无返回至类型,(无返回,算不算一个返回呢,只不过为空)暂且描述为最多只有一个吧!。
C项:方法没有返回值,这个方法必然是void类型,反证法:方法必然有类型修饰符,没有反之值的只有void
D项:错误项,void修饰的方法,无返回值,return;也是可以的。

作者: 默默地回忆    时间: 2015-1-16 21:19
d是错的,void修饰可以出现return;不返回任何数据就可以了
作者: 赵嘉泷    时间: 2015-1-16 21:20
方法声明为void,返回空的意思,如果有return语句后面不能加内容,可以使用return语句提前退出方法。
作者: 希冀    时间: 2015-1-16 21:20
选择D 方法中定义返回值为void的时候  可以有也可以不写
作者: qq306149769    时间: 2015-1-16 21:23
选项D中可以出现retrun
作者: TW莞尔一笑    时间: 2015-1-16 21:24
D肯定错,但C中如果方法包括构造方法,void也是可以没有的,所以这个题,单选就选D,多选就选CD.
作者: syfsyf1993    时间: 2015-1-16 21:24
DDDDDDDDDDD不解释
作者: 飞流至寒    时间: 2015-1-16 21:27
d是错的。试一试就可以知道了,语法允许。
作者: SNXJ    时间: 2015-1-16 21:31
邓士林 发表于 2015-1-16 21:14
D,错误,可以出现return,return;不返回任何职就行了。A项:调用方法时要求对应参数类型必须相同,不然编译 ...

构造方法呢?
作者: iblackhorse    时间: 2015-1-16 21:37
D ,return是可有可无的。因为是void返回类型
作者: xinjian00    时间: 2015-1-16 21:47
我看也是D
作者: IcedCoffee    时间: 2015-1-16 23:34
为什么最近总是碰见这种坑爹题  选项C如果是构造方法 构造方法是没有返回值的 也不是静态的 所以C理论上也是错误的 因为构造方法也是方法  D那么明显就不说了 我同意11楼的观点 但是我认为这题就应该选cd 单选是错滴
作者: 没胡子的小眼睛    时间: 2015-1-17 00:46
我想问下哦 如果在一个函数和方法中 只返回了一个值 但是如果这个方法和函数中有一个全局变量的话这个值是算返回值么? 全局变量也会有变化 如果方法调用有返回值里面的全局变量 应该也变了吧
有关系么》
作者: 我为你着迷    时间: 2015-1-17 08:31
没有关系的吧   你return返回的值是随着返回值类型走的  你函数上定义的什么类型  你return就是返回什么类型的值  例如你函数定义了int类型的,那么返回值就是int类型的,String就是String的   boolean就是boolean的。
作者: 以利亚    时间: 2015-1-17 08:39
涨知识了,原来如此,搜嘎
作者: 张_磊    时间: 2015-1-17 09:04
我是来学习知识的。。
作者: tony_ygz    时间: 2015-1-17 21:24
D项错误
作者: huyang936    时间: 2015-1-17 21:36
d 这个我是用的排除法,
作者: gecl    时间: 2015-1-17 22:56
  D是错误的。。。是第15题吧。。。。。
作者: xyycici    时间: 2015-1-17 23:19
选择d.函数没有返回值,其实函数里隐含着“return ;”的。所以其实你在返回值是void的函数里是可以有return的,格式是return加一个分号;即“return;”
作者: suihs11    时间: 2015-1-21 23:07
谢谢大家,这个题已经弄明白了,return不只是用来返回函数值的,,
作者: 自信流云    时间: 2015-1-22 09:53
本帖最后由 自信流云 于 2015-1-22 09:57 编辑

我觉得答案是:BCD。B:方法只能声明一个返回值;下面这个方法应该声明了三个返回值吧(虽然一次只能返回一个)。
public int compareTo(Student s)
{
         if(this.age>s.age)
               return 1;
         else if(this.age==s.age)               return 0;
         return -1;
}
C:如果方法没有返回值必须声明返回为void;构造方法无void,也没有返回值。
D是错误的,这个理由上面几楼都给出了。

作者: lwj123    时间: 2015-1-22 11:32
d,return只是结束语句而已,可以出现在void的方法中
作者: 彭旭文    时间: 2015-1-22 18:05
1楼解释得很详细!可参考。如果再深入一点,C答案的话,能否联系构造方法分析分析?
作者: lc030405    时间: 2015-1-23 10:46
D项为正确答案
作者: 袁丙轩    时间: 2015-2-12 08:17
答案是D
作者: Novice.Jin    时间: 2015-2-12 12:35
void可以返回,直接return;   其实可以看成结束该函数
作者: franksight    时间: 2015-2-25 18:43
d错的。。
作者: ㏒假™面具    时间: 2015-2-26 17:35
D是错的,返回值为void时只是可以省略return
作者: 正在输入...    时间: 2015-3-3 22:53
D是错误的,貌似默认都有一个return吧。




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