语法: 访问修饰符 返回值类型 方法名 (参数列表){ 方法体 }
方法的重载:1.相同的方法名、2.不同的参数列表(包过参数的类型,数量、以及参数出现的顺序)、3.方法的重载和返回值类型无关
方法的递归调用:1.自己调用自己本身、2.一定要有结束条件
public class Demo01{
public static void main(String[] args){
add();
add(1);
System.out.println("1 + 2 = "+ add(1,2));
System.out.println("5! = "+ factorial(5));
}
public static void add(){
System.out.println("这是一个无参无返回值的方法!");
}
public static void add(int num){
System.out.println("这是一个有参无返回值的方法,参数值为:"+num);
}
public static int add(int num01,int num02){
return num01+num02;
}
public static int factorial(int num){
if(num==1){
return 1;
}else{
return factorial(num-1)*num;
}
}
}
可变参数函数:1、可变参数必须放在列表最后面; 2、可以多参调用也可以无参调用; 3、可变参数本身是数组 ,可以传递数组
public class Demo04{
public static void main(String[] args){
System.out.println("无参调用:"+add());
System.out.println("多参调用:"+add(1,2,3));
System.out.println("传递数组:"+add(new int[]{1,2,3}));
System.out.println("不同参数类型和可变参数重载:"+add2("1",new int[]{1,2,3}));
System.out.println("不同方法名可变参数和同类型参数:"+add3(1,new int[]{1,2,3}));
}
//可变参数 函数
public static int add(int ... nums){
int sum=0;
for(int i=0;i<nums.length;++i){
sum+=nums[i];
}
return sum;
}
//重载
public static int add2(String str,int ... nums){
System.out.println("重载调用:"+str+" "+nums);
int sum=0;
for(int i=0;i<nums.length;++i){
sum+=nums[i];
}
return sum;
}
public static int add3(int num,int ... nums){
int sum=0;
for(int i=0;i<nums.length;++i){
sum+=nums[i];
}
return sum-num;
}
}