java 方法的返回值(翻译自Java Tutorials)
原文出自 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)相关推荐
- java gettext返回值_012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)...
EditText中的getText()方法的返回值为CharSequence,如果我们想要获得string类型数据的话,需要在后边加上.toString 另外,String类型转为int:Intege ...
- iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= java.lang.Integer,方法的返回值就是int)
今天工作中使用iBaits写SQL,其中一个是insert语句 在sqlMap中我这么写了,<insert parameterClass="...." resultClass ...
- fabric java sdk解析channel.queryTransactionByID(txId)方法的返回值
解析区块链上具体某一个块的内容,官方java sdk已经给出了解析案例,具体解析过程也可参考QueryHandler#queryBlockChain. 但是如果要根据交易ID(txId)查找交易信息, ...
- java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function
文章目录 函数式接口 概念 函数式接口作为方法参数 函数式接口作为方法的返回值 常用函数式接口 Supplier接口 常用函数式接口 Consumer 函数式接口之 Predicate接口 常用接口之 ...
- Java面试题:IO流中read()方法为什么返回值是int
Question:IO流中read()方法为什么返回值是int? anwser:因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte, ...
- Java基础知识之方法的返回值与重载
文章目录 一.方法的返回值 二.方法的重载 一.方法的返回值 1.说明 就是方法调用结束的标志,会返回一个值给调用该方法的方法里,然后我们常用的就是使用一个变量去接收这个值,并把这个值用作其他的操作. ...
- java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...
- Java基础学习总结(127)——Java方法应该返回空对象还是null
Java方法应该返回空对象还是null? 大多数情况下就是在需要返回值的方法中,使用空对象(empty object)来代替返回null.理由很简单,空对象与其他有意义的对象一样,使得调用方法的用户不 ...
- java中的返回值到底有什么用?
今天看到一个有意思的问题:java中的返回值到底有什么用? 看到了一个高赞回答如下: 你是公司的老总,然后你跟你秘书说,我想要两张的电影票.然后,你秘书去排队买票,最后把两张电影票给你,这两张电影票就 ...
最新文章
- vue从创建到完整的饿了么(5)v-for,v-bind与计算属性
- Navicat for Oracle Cannot load OCI DLL
- 【MaxCompute】学习笔记常用查询sql
- 大道至简第一章读后感(伪代码)
- java实现语法分析器_语法分析 | 语法分析的任务
- Taro+react开发(75):taro简介
- 一款App基于mPaaS小程序如何进行改造?
- java tostring的用处_JAVA的tostring()方法的作用是什么呢?
- flutter FadeTransition实现透明度渐变动画
- Mybatis入门程序
- pandas数据切片
- 1000行代码入门python-在知乎上学 Python - 爬虫篇
- Bzoj1007 [HNOI2008]水平可见直线
- idea 2018 3.3版本破解
- python 调用函数
- 西瓜书之误差逆传播公式推导、源码解读及各种易混淆概念
- kinect游戏下载
- 奇葩算法系列——猴子排序
- android 实现果冻动画效果,手把手教你绘制Android粘性果冻动画组件
- 这是我见过最美的公众号图文排版,不接受反驳。
热门文章
- Mybatis-Plus代码生成器初体验
- sequelize 外键关联_用Sequelize计算关联条目
- pynq 环境搭建_蚂蚁S9矿板ZYNQ7010开发板移植PYNQ_2.5
- 微型计算机主机箱内的所有部件均由,计算机应用基础模拟题
- php 连接socket服务器_PHP-Socket服务端客户端发送接收通信实例详解
- bash 将二进制转换为十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
- Ba Gua Zhen
- STM32之输入捕获
- Linux中MongoDB的安装
- Base64与文件(docx)流的加密和解密