A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

段金杰

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 段金杰 初级黑马   /  2012-8-3 09:41  /  1611 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

是所有的函数都有return关键字?void定义的函数默认也有return?构造方法里面默认有return吗?能给一个具体解释更好

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 新手报到,鼓励下

查看全部评分

3 个回复

正序浏览
return 的作用是结束正在运行的函数,并返回函数值。
return后面可以跟一个常量,变量,或是表达式。

函数的定义一般是这样的,例如:
int a(int i)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是

参数的类型,i是参数的名字
{
...//省略函数体内容
return b;//b必须与函数头的返回值一致(此处为int型)
}
简单函数举例:
int addOne(int b)
{
  return b+1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回
调用时这样:
int result= addOne(2);//此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式

以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char

,a[](数组),*a(指针),结构或类(c++)

但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但

是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如
void print()//括号中为空表示无传递参数
{
  printf("a");
  printf("b");
  return ;//函数执行到此处结束
  printf("c");
}//该函数只执行到return语句处,即屏幕上输出的为"ab"

return是个好东西
第一个作用,也就是他的真实作用
返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么
比方主函数int main()
{}这里就必须有一个return,只有void时可以不用返回值。
功能函数
int fun()
{
return 1;
}
这个时候fun函数的作用就是返回一个int 类型的值,可以直接拿来用比方int a=fun();
这里就相当于int a=1;
另外一个作用return后面的语句不会执行,我们可以用它来结束程序
比方找出三个数种最大的一个数

void main
{
int a,b,c;
if(a>b)
  if(b>c)
      {
     return printf("最大值为%d",a);
   }
.....
}
在这里if(b>c)
我们就可以直接得出a是最大了,就没必要执行下面的语句了,return治理就起到了终止语句的作用了。

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
焦晨光 发表于 2012-8-3 09:54
是的 在java中所有的方法都有return关键字 包括void定义的方法、(构造方法下面解释)如果程序员没有在方法中 ...

很详细,谢谢
回复 使用道具 举报
本帖最后由 焦晨光 于 2012-8-3 10:22 编辑

是的 在java中所有的方法都有return关键字 包括void定义的方法、(构造方法下面解释)如果程序员没有在方法中加入return关键字,
java会自动在方法中加入return关键字

return 语句可以使其从当前方法中退出,返回到调用该方法的语句处,继续程序的执行。返回语句有两种格式。
1、return expression: 返回一个值给调用该方法的语句,返回值的数据类型必须与方法声明中的返回值类型一致。
   可以使用强制类型转换来使类型一致。
2、return: 当方法说明中用 void 声明返回类型为空时,应使用这种格式不返回任何值。

Java中的return语句总是和方法有密切关系,return语句总是用在方法中,有两个作用,
一个是返回方法指定类型的值(这个值总是确定的),一个是结束方法的执行(仅仅一个return语句)

这里要特别说明一下构造方法:
构造方法是一种特殊的方法,在构造方法中既不能定义返回值类型,也不能使用void定义构造函数没有返回值,
构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
所以构造方法中是没有return关键字的,构造方法的运行和处理都是java自己完成的,无需我们调用。

另外你也可以理解构造方法是有返回值的,它返回的是该类的实例,可以把这个实例当成返回值,
所以构造方法的返回值总是当前类,无需定义返回值类型
因此不能在构造方法中显式使用return来返回当前类的对象,因为构造方法的返回值是隐式的。

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 很给力!Think in Java?

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马