方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}
-
修饰符: 可选,定义方法的访问类型
-
返回值类型: 方法返回值的数据类型。当返回值类型(returnValueType)是void时,该方法执行所需的操作,但没有返回值。
-
方法名: 方法的实际名称。
-
参数类型: 当方法被调用时,传递值给参数,这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 形式参数: 在方法被调用时用于接收外界输入的数据。
- 实参: 调用方法时实际传给方法的数据。
-
方法体: 包含具体的语句,定义该方法的功能。
方法重载
重载就是在一个类中,有相同 的函数名称,但形参不同的函数
方法重载的规则:
- 方法名称必须相同
- 参数列表必须不同(个数不同/类型不同/参数排列顺序不同等)
- 方法的返回值可以相同也可以不相同
- 只有返回类型不同不足以成为方法重载
可变参数
在方法声明中,在指定参数类型后面加一个省略号(…)
一个方法中只能指定一个可变参数,他必须是方法的最后一个参数。任何普通参数必须在它之前声明。
递归
递归结构包括两个部分:
- 递归头: 判断何时结束递归,避免递归进入死循环
- 递归体
当递归无限运行时,会出现StackOverflowError错误
示例:计算阶乘
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("输入一个整数: ");
int n=input.nextInt();
System.out.println(n+"的阶乘是: "+f(n));
input.close();
}
//递归计算阶乘的方法
public static long f(int n){
if(n==1)
return 1;
else
return n*f(n-1);
}
}
运行结果:
流程图: