执行volume()方法确实将计算盒子体积的值返回到Box类,但这并不是最好的方法。例如,你的程序的其他部分如何知道一个盒子的体积,而不显示它的值?一个更好地实现volume()的方法是将它计算的盒子体积的结果返回给它的调用者。
下面的例子是对前面程序的改进,它正是这样做的:

// Now,volume() returns the volume of a box.
class Box { double width; double height; double depth; // compute and return volume double volume() {
return width * height * depth; }
}
class BoxDemo4 { public static void main(String args[]) {
Box mybox1 = new Box();
Box mybox2 = new Box();
double vol;
// assign values to mybox1's instance variables
mybox1.width = 10;
mybox1.height = 20;
mybox1.depth = 15;
/* assign different values to mybox2's instance variables */
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
// get volume of first box
vol = mybox1.volume();
System.out.println("Volume is " + vol);
// get volume of second box
vol = mybox2.volume();
System.out.println("Volume is " + vol); }
}

在这个程序中,当volume()被调用时,它被放在赋值语句的右边。左边是接收volume()返回值的变量。因此,当下面的语句执行后:

vol = mybox1.volume();

变量mybox1.volume ( )的值是 3,000,且该值被保存在vol中。

对于返回值的理解,要注意下面两件重要的事情:

· 方法返回的数据类型必须与该方法指定的返回类型相兼容。例如,如果一个方法的返回值是布尔型,就不可能返回整数。

· 接收方法返回值的变量 (例如本例中的变量 vol)也必须与指定方法返回值的类型相兼容。

另外一点:因为实际上不需要vol变量,前面的程序可以被写得更高效一些。

对volume( )方法的调用可以直接用在 println ( )语句中,如下面的语句:

System.out.println("Volume is " + mybox1.volume());

在本例中,当println ( )被执行时,mybox1.volume ( )将自动地被调用,而且它的值会被传递给println ( )。

Java基础篇之返回值相关推荐

  1. Java 基础——赋值语句的返回值

    赋值表达式的"返回值"就是左侧的值,即右侧的结果,. 示例1: int a = 0; System.out.println(a = 9); // 输出结果是9 示例2: int a ...

  2. Java基础篇1——变量与数据类型

    Java基础篇1--变量与数据类型 1.标识符命名规则 标识符以由大小写字母.数字.下划线(_)和美元符号($)组成,但是不能以数字开头. 大小写敏感 不能与Java语言的关键字重名 不能和Java类 ...

  3. 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)

    菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...

  4. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  5. 菜鸟学习笔记:Java基础篇4(面向对象三大特征)

    菜鸟学习笔记:Java面向对象篇中 继承 概念 方法重写(override) Object类 Super关键字 组合 final关键字补充 封装 访问控制符 多态 继承 概念 继续上一篇的例子: #m ...

  6. 菜鸟学习笔记:Java基础篇2(变量、运算符、流程控制语句、方法)

    菜鸟学习笔记:Java基础篇2 变量 基本概念 变量作用域 final关键字 运算符 算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 运算符优先级 Java三种流程控制语句 顺序 ...

  7. Java基础篇--设计模式

    目录 前言 设计模式 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 行为型模式: 访问者模 ...

  8. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  9. java基础篇---第一天

    今日开始在心中正式开始在培训班开始培训.一下是在培训的过程中发现自己在自学过的过程中发现的问题.这篇是java基础篇. 第一天 : 1)配置java环境变量 1.在系统变量中新建JAVA_HOME:j ...

最新文章

  1. Java 集合系列10: HashMap深入解析(2)
  2. 揭秘:支付宝小程序 V8 Worker 技术演进
  3. CF176E Archaeology(set用法提示)
  4. 数据库大战,AWS又将目标瞄准了微软SQL Server
  5. *p++,(*p)++,*++p,++*p有什么不同
  6. git/github使用完整教程(1)基础
  7. 用fputc()函数以字符串形式写入字符到磁盘文件
  8. web command line : http://yubnub.org/
  9. float最大_Hard 级:二叉树中的最大路径和
  10. Android 服务类Service 的详细学习
  11. 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)
  12. yum安装mysql my.cnf_Linxu Yum方式安装Mysql
  13. android获取Mac地址和IP地址
  14. 【代码】求二叉树叶子结点的个数、递归方式
  15. opencv 模板匹配 掩膜 matchtemplate with mask
  16. qq音乐mp3解析php源码,QQ音乐PHP解析源码
  17. 计算机病毒与防护学生反思,计算机病毒与防治教学反思
  18. 可以说:未来10年这个行业依然值得进,天花板很高,月薪至少3W
  19. Unity官方离线中文文档大集合
  20. python argparse命令行参数解析

热门文章

  1. servlet-servletContext简述
  2. ExtJS视频学习笔记
  3. 检测邮箱和手机号是否正确的正则
  4. CSS表单元素样式设置
  5. 【RobotStudio学习笔记】(四)夹取工件程序设计
  6. 《我的互联网方法论》读书笔记
  7. php获取页面指定内容,php 获取页面中的指定内容类
  8. markdown 流程图js_如何在Markdown中画流程图
  9. myeclipse文档链接oracle,[数据库]MyEclipse 连接Oracle数据库(初学者必看)
  10. rocketmq 顺序消费_RocketMQ核心概念扫盲