尽管带有void返回类型的方法并不少见,但太多数方法都会返回值.事实上,返回值是方法最有用的功能之一.你已经看到了一个返回值的示例:使用sqrt()函数来获得一个数的平方根.
在程序设计中,返回值可以用于不同的目的.在某些情况下,如sqrt(),返回值包含一些计算结果.在另一些情况下,返回值只用来指示成功或失败.还有一些情况,可能包含状态码.无论是何种目的,使用方法返回值都是Java程序设计的重要组成部分.
方法使用下面的retrun语句调用例程返回值:
retrun value;
这里,value是返回值.这种形式的return语句只能用在返回类型不为void的方法中.而且,非void方法必须使用这种形式的return语句返回值.
可以使用返回值来改进range()的实现方式.让range()计算并返回行驶里程比显示行驶里程更好.这种方法的优势是尅把返回值用于其他计算.下面的示例就不再让range()显示行驶里程,而是返回行驶里程:
package javaTest; public class test { // @param args public static void main(String args[]) { Vehicle minivan = new Vehicle(); Vehicle sportscar = new Vehicle(); int range1,range2; minivan.passengers = 7; minivan.fuelcap = 16; minivan.mpg = 21; sportscar.passengers = 2; sportscar.fuelcap = 14; sportscar.mpg = 12; range1 = minivan.range(); System.out.println("minivan can carry "+minivan.passengers + " with range of "+range1); range2 = sportscar.range(); System.out.println("sportcar can carry "+sportscar.passengers + " with range of "+range2); } } class Vehicle { int passengers; int fuelcap; int mpg; //display the range int range() { return fuelcap * mpg; } }
输出:
minivan can carry 7 with range of 336 sportcar can carry 2 with range of 168
在程序中,注意当range()被调用时,是将他放在赋值语句的右边,而左边是一个接收range()返回值的变量.因此,在执行下列代码后,minivan对象的行驶里程就存储到了range1中:
range1 = minivan.range();
注意,range()有一个int类型的返回值,这就意味着要向调用者返回一个整数值.方法的返回类型之所以重要,是因为方法返回的数据类型必须与方法指定的返回类型兼容.因此,如果想让一个方法返回double类型的数据,那么该方法的返回类型也必须是double类型.