一、方法的调用
1.基本方法调用 public static void main(String[] args) { int sum = add(1,2); System.out.println(sum); } //在main方法外写新的方法 //int a,int b 为形式参数,用来定义作用的 public static int add(int a ,int b){ //加法 return a+b; }
二、方法重载
public class Demo03 { public static void main(String[] args) { //实参 int max = max(10,30); //double max = max(2.5,20); System.out.println(max); } public static int max(int num1,int num2){ int result =1; if(num1 == num2){ System.out.println("结果相等"); return 0; //终止方法 } if(num1>num2){ result= num1; }else { result = num2; } return result; //返回结果 } public static double max(double num1,double num2){ double result =0; if(num1==num2){ System.out.println("结果相等"); return 0; } if(num1 >num2){ result = num1; } else { result = num2; } return result; } }
三、可变参数
定义方法:
在定义方法时,在最后一个形参后加上三点 …,就表示该形参可以接受多个参数值,多个参数值被当成数组传入。上述定义有几个要点需要注意:
-
可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数
-
由于可变参数必须是最后一个参数,所以一个函数最多只能有一个可变参数
-
Java的可变参数,会被编译器转型为一个数组
-
变长参数在编译为字节码后,在方法签名中就是以数组形态出现的。这两个方法的签名是一致的,不能作为方法的重载。如果同时出现,是不能编译通过的。可变参数可以兼容数组,反之则不成立
示例:
public static void main(String[] args) { test(12,3,4,5,6); } public static void test(int x,int...i){ System.out.println(i[0]); System.out.println(x); }
四、递归方法
递归算法是一种直接或者间接调用自身函数或者方法的算法。
public static void main(String[] args) { System.out.println(f(3)); } //1!=1 //2!=2*1 /* 边界条件:到最后一个数,程序会执行到底 f(1)=1 前阶段:f(1)以前的阶段 返回阶段n*(n-1) */ public static int f(int n){ if(n==1){ return 1; }else { return n*f(n-1); }