方法重载是方法名称进行重用的一种技术形式,其特点主要就是方法名称相同,参数的类型或个数不同,在调用时会根据传递的参数类型和个数不同执行的方法体。
定义方法重载;
public class For{
public static void main(String args[]){
int resultA = sum(10,20); //调用2个int参数的方法
int resultB = sum(10,30,90); //调用3个int参数方法
int resultC = sum(5.22,2.78); //调用2个double参数的方法
System.out.println("加法执行结果:" +resultA);
System.out.println("加法执行结果:" +resultB);
System.out.println("加法执行结果:" +resultC);
}
public static int sum(int x,int y){
return x + y; //2个数字相加
}
public static int sum(int x,int y,int z){
return x + y + z; //3个数字相加
}
public static int sum(double x,double y){ //方法是double型的 这里使用double
return (int)(x + y); //2个数字相加
}
}
观察重载输出操作的重载实现:
public class Test{
public static void main(String args[]){
System.out.println("hello.world");
System.out.println("22");
System.out.println("2.99");
System.out.println("PP");
System.out.println("ture");
System.out.println("false");
}
}
本程序利用System.out.println()重载的特点分别输出了各种不同的数据类型信息,可以得出明显的结论:println()方法在JDK中实现了重载要求
方法递归调用
递归调用是一种特殊的调用形式指的的是方法自己调用自己的形式,但是进行调用的时候必须满足以下条件:
1.递归调用必须有结束条件
2.每次调用的时候都需要根据需求改变传递的参数内容
递归调用是迈向数据结构开发的第一步,需要大量的代码积累:
public class Test{
public static void main(String args[]){
System.out.println(sum(100)); //1~100的累加
}
public static int sum(int num){ //最大的内容
if (num ==1){ //递归结束调用
return 1; //最终结果返回了一个1
}
return num + sum(num -1); //递归调用
}
}
本程序使用递归的操作进行数字累加操作,并且当传递的参数为1时,直接返回为一个数字1(递归调用结束的条件)
*****【第一次执行sum()、主方法执行】return 100 + sum(99).
*****【第二次执行sum()、sum()递归调用】return99 +sum(98).
*****【第99次执行sum()、sum()递归调用】return2 +sum(1).
*****【第100次执行sum()、sum()递归调用】return1
最终执行的效果相当于:return 100+99+98+97+。。。。+2+1(if结束条件)
学而不思则罔,思而不学则殆