闭关修炼100天 JavaEE乱杀 第五天
函数的重载
条件:
1.在同一个类中
2.方法名必须一致
3.参数列表的个数或者类型不一致
4.与返回值无关
好处:系统会根据实参类型自动匹配到对应的方法中
应用场景:在同一个类中,多个方法功能大概一致,但是细节实现不一致,就可以考虑使用重载
public class Test04{
/**
知识点:方法的重载
概念:方法之间的关系
需求1:设计一个方法,传入两个int值,返回最大值 -- getMax(int a,int b)
需求2:设计一个方法,传入三个int值,返回最大值 -- getMax(int a,int b,int c)
需求3:设计一个方法,传入两个double值,返回最大值 -- getMax(double a,double b)
需求4:设计一个方法,传入三个double值,返回最大值 -- getMax(double a,double b,double c)
设计方法的步骤:
1.考虑方法名(见名知意)
2.考虑形参(几个?类型?)
3.考虑返回值(需不需要?返回值类型)
*/
public static void main(String[] args){
//打印getMax方法,前提是该方法必须有返回值
System.out.println(getMax(10.1,20,30));
}
public static int getMax(int a,int b){
return (a>b)?a:b;
}
public static int getMax(int a,int b,int c){
int max = (a>b)?a:b;
max = (max>c)?max:c;
return max;
}
public static double getMax(double a,double b){
return (a>b)?a:b;
}
public static double getMax(double a,double b,double c){
double max = (a>b)?a:b;
max = (max>c)?max:c;
return max;
}
//错误示范:重载要关注形参的类型,不关注形参的名字
//public static void method(String str,int i){
//}
//public static void method(String ss,int ii){
//}
}
重载我就不过多说,反正功能差不多就用,注意得有形参类型或者个数不一样就行,还得注意在一个类中,
重载底层实现应该很好玩,但我现在真的看不懂,我现在先往后学,后面再来底层。
函数的递归
不死神兔
1 1 2 3 5 8 13 21 34 55 斐波那契数列
找规律1+1 = 2;1+2=3 ;2+3=5;3+5=8;8+5=13从3开始,当前项等于前两项相加
找出口第一个为1,第二个为2,凭借这两个和上面规律就能算出所有数,这就是出口,记住该怎么找出口,你的出口那几个数通过上面规律就能获取所有项,这就是出口,也就能用递归
public class Test02{
public static void main(String[] args){
int num = gerRabbit(7);
System.out.println(num);
}
public static int gerRabbit(int mouth){
if(mouth == 1 || mouth == 2){
return 1;
}
else{
return gerRabbit(mouth - 1) + gerRabbit(mouth - 2);
}
}
}
看完上面你应该明白递归了,其实递归看着不难,重要的是你能想到用递归,记得我给你写的那句话吗?如果所有数都能让那几个数通过规律推完,那就用递归。