修饰符 返回值类型 方法名(类型名 参数名){ ... 方法体 ... return 返回值; }
方法名称必须相同
参数列表必须不同(个数不同,或类型不同、参数排列顺序不同)
方法的返回类型可以相同也可以不相同
仅仅返回类型不同不足以成为方法的重载
jdk1.5开始,java支持传递同类型的可变参数给一个方法。
在方法声明中,在指定参数类型后加一个省略号(...)。
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public class Demo01 { public static void main(String[] args) { Demo01 demo01 =new Demo01(); demo01.test(1,2,3,4,5,6); } public void test(int x,int... i){ for (int k = 0; k <i.length; k++) { System.out.println(x+" "+i[k]); } } }
案例
//输出最大数 //不确定会输入多少个数,使用可变参数 public class Demo02 { public static void main(String[] args) { printMax(1,2,4,1.1,5.5,6.6,3.3,2.2,1.111); } public static void printMax(double... n){ if(n.length==0){ System.out.println("未输入"); return; } // double max=0; // for(int i=0;i<n.length;i++){ // if(n[i]>n[0]){ // n[0]=n[i]; // max=n[0]; // } // } double max=n[0]; for(int i=0;i<n.length;i++){ if(n[i]>max){ max=n[i]; } } System.out.println(max); } }
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法。
//递归 //实现5的阶乘 public class Demo03 { public static void main(String[] args) { System.out.println(f(5)); } public static int f(int n){ if(n==1){ return 1; }else{ return n*f(n-1); } } }