什么是方法的返回值?
带着这个问题我们看一个例子。需求是:编写一个方法,方法名为max,其功能是求两个整数的最大值。
分析:
求出两个整数的最大值,并且两个整数未知,所以方法需要定义两个参数接收这两个数。
main方法调用max方法向其传入两个整数,max方法得到传入的两个整数,通过判断得出最大数,并将最大数返回给调用方。
代码如下:
/**
* 面向过程编程-方法定义
* @author 攀博课堂(www.pbteach.com)
*
*/
public class FunctionDemo3 {
public static void main(String[] args) {
//调用max方法求两个数的最大数
int m = max(10,20);
System.out.println("最大数:"+m);
}
/**
* 求两个数的最大数
* @param x
* @param y
* @return 最大数
*/
public static int max(int x,int y) {
if(x>y) {
return x;
}else {
return y;
}
}
}
说明:
return关键字后边跟方法的返回值。
当方法有返回值时就不能再使用void,要使用一个与返回值类型匹配的类型。
方法调用的执行流程如下:
参数传递流程如下:
1)执行max(10,20)开辟方法内存区,并将实参10、20分别赋值给形参x、y。
2)max方法求出最大值20,执行return 20;将20返回给调用方即main方法的int m = max(10,20);处。
3)将20赋值给main方法区的m变量,最后输出m的值。
int m = max(10,20);表示使用变量m接收max方法的返回值,也可以用另一个方法来接收。如下代码:
//直接使用println方法来接收max的返回值
System.out.println(max(10,20));
也可以不接收返回值(一般不这样做):
//只调用max方法,不接收返回值
max(10,20);
完整的代码如下:
/**
* 面向过程编程-方法定义
* @author 攀博课堂(www.pbteach.com)
*
*/
public class FunctionDemo3 {
public static void main(String[] args) {
//调用max方法求两个数的最大数
int m = max(10,20);
System.out.println("最大数:"+m);
//直接使用println方法来接收max的返回值
System.out.println(max(10,20));
//只调用max方法,不接收返回值
max(10,20);
}
/**
* 求两个数的最大数
* @param x
* @param y
* @return 最大数
*/
public static int max(int x,int y) {
if(x>y) {
return x;
}else {
return y;
}
}
}