原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/11/29/2795468.html

代码调用方法时,它会在以下情况返回:

完成方法所有的语句

出现return语句

抛出一个异常

以最先出现的为准。

在方法声明中,会声明方法的返回类型。方法体内,可以使用return语句返回值。

任何声明了void的方法,不需要返回值,它非必须包含一个return语句,但是它也可以这么做。这个情况下,return语句可以用来跳出控制流的代码块,并退出方法,简单使用如下:

return;

在一个声明void的方法,返回一个值,编译器会报错。

不是声明为void的方法,必须包含一个return语句,紧跟对应的返回值,就像这样:

return returnValue;

返回值的数据类型必须匹配方法声明的返回数据类型;不能在一个声明返回类型是整数的方法,返回一个boolean类型的值。

下面讨论的Rectangle的getArea()方法返回一个整数:

    // a method for computing the area of the rectanglepublic int getArea() {return width * height;}

这个方法返回表达式width*height计算出来的整数。

getArea方法返回原生类型。方法也可以放回引用类型。例如,在程序中操纵Bicycleobjects,我们也许会这么做:

public Bicycle seeWhosFastest(Bicycle myBike, Bicycle yourBike,Environment env) {Bicycle fastest;// code to calculate which bike is // faster, given each bike's gear // and cadence and given the // environment (terrain and wind)return fastest;
}

返回类或接口

如果本节混淆,跳过它,等到你已经完成了接口和继承的学习再回头看这个。

当一个方法是用类名作为返回类型,例如whosFastest的做法,返回的对象的类的类型,必须是声明的返回类型的子类,或者就是声明的返回类型。假设有这么一个类层次结构,ImaginaryNumber是Number的子类,Number是Object的子类,如下图所示:

ImaginaryNumber类层次结构

假如有这么一个方法返回Number:

public Number returnANumber() {...
}

returnANumber方法可以返回ImaginaryNumber,但是不能返回一个Object。ImaginaryNumber是一个Number类,因为它是Number的子类。尽管如此,一个Object类未必是Number—它可以是一个String或者是其他类型。

public ImaginaryNumber returnANumber() {...
}

这种技术称为协变返回类型,返回类型允许是多个子类,但是是同一分支。

注意:你也可以使用接口作为返回类型,这个情况下,返回的对象必须实现了这个接口。

转载于:https://www.cnblogs.com/ggjucheng/archive/2012/11/29/2795468.html

java 方法的返回值(翻译自Java Tutorials)相关推荐

  1. java gettext返回值_012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)...

    EditText中的getText()方法的返回值为CharSequence,如果我们想要获得string类型数据的话,需要在后边加上.toString 另外,String类型转为int:Intege ...

  2. iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= java.lang.Integer,方法的返回值就是int)

    今天工作中使用iBaits写SQL,其中一个是insert语句 在sqlMap中我这么写了,<insert parameterClass="...." resultClass ...

  3. fabric java sdk解析channel.queryTransactionByID(txId)方法的返回值

    解析区块链上具体某一个块的内容,官方java sdk已经给出了解析案例,具体解析过程也可参考QueryHandler#queryBlockChain. 但是如果要根据交易ID(txId)查找交易信息, ...

  4. java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function

    文章目录 函数式接口 概念 函数式接口作为方法参数 函数式接口作为方法的返回值 常用函数式接口 Supplier接口 常用函数式接口 Consumer 函数式接口之 Predicate接口 常用接口之 ...

  5. Java面试题:IO流中read()方法为什么返回值是int

    Question:IO流中read()方法为什么返回值是int? anwser:因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte, ...

  6. Java基础知识之方法的返回值与重载

    文章目录 一.方法的返回值 二.方法的重载 一.方法的返回值 1.说明 就是方法调用结束的标志,会返回一个值给调用该方法的方法里,然后我们常用的就是使用一个变量去接收这个值,并把这个值用作其他的操作. ...

  7. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?

    1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...

  8. Java基础学习总结(127)——Java方法应该返回空对象还是null

    Java方法应该返回空对象还是null? 大多数情况下就是在需要返回值的方法中,使用空对象(empty object)来代替返回null.理由很简单,空对象与其他有意义的对象一样,使得调用方法的用户不 ...

  9. java中的返回值到底有什么用?

    今天看到一个有意思的问题:java中的返回值到底有什么用? 看到了一个高赞回答如下: 你是公司的老总,然后你跟你秘书说,我想要两张的电影票.然后,你秘书去排队买票,最后把两张电影票给你,这两张电影票就 ...

最新文章

  1. vue从创建到完整的饿了么(5)v-for,v-bind与计算属性
  2. Navicat for Oracle Cannot load OCI DLL
  3. 【MaxCompute】学习笔记常用查询sql
  4. 大道至简第一章读后感(伪代码)
  5. java实现语法分析器_语法分析 | 语法分析的任务
  6. Taro+react开发(75):taro简介
  7. 一款App基于mPaaS小程序如何进行改造?
  8. java tostring的用处_JAVA的tostring()方法的作用是什么呢?
  9. flutter FadeTransition实现透明度渐变动画
  10. Mybatis入门程序
  11. pandas数据切片
  12. 1000行代码入门python-在知乎上学 Python - 爬虫篇
  13. Bzoj1007 [HNOI2008]水平可见直线
  14. idea 2018 3.3版本破解
  15. python 调用函数
  16. 西瓜书之误差逆传播公式推导、源码解读及各种易混淆概念
  17. kinect游戏下载
  18. 奇葩算法系列——猴子排序
  19. android 实现果冻动画效果,手把手教你绘制Android粘性果冻动画组件
  20. 这是我见过最美的公众号图文排版,不接受反驳。

热门文章

  1. Mybatis-Plus代码生成器初体验
  2. sequelize 外键关联_用Sequelize计算关联条目
  3. pynq 环境搭建_蚂蚁S9矿板ZYNQ7010开发板移植PYNQ_2.5
  4. 微型计算机主机箱内的所有部件均由,计算机应用基础模拟题
  5. php 连接socket服务器_PHP-Socket服务端客户端发送接收通信实例详解
  6. bash 将二进制转换为十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
  7. Ba Gua Zhen
  8. STM32之输入捕获
  9. Linux中MongoDB的安装
  10. Base64与文件(docx)流的加密和解密