方法的重载以及递归结构
方法重载
java允许同一个类中定义多个同名方法,只要他们的形参列表不同即可。如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载。
构成方法重载的条件:
- 构成列表不同的含义:形参类型、形参个数、形参顺序不同
- 只有返回值不同不构成方法的重载,如:int a (String str){}与void a(String str){}不构成方法重载
- 只有形参的名称不同,不构成方法的重载。如:Int a(String str){}与int a(String s){}不构成方法重载
递归结构
递归的基本思想就是自己调用自己
递归结构包括两个部分:
- 定义递归头解决:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件
- 递归体。解决:什么时候需要调用自身方法
//测试递归结构阶乘
public class Test {
public static void main(String[] args) {
int b = test(8);
System.out.println(b);
}
public static int test(int a ){
if(a==1){
return 1;
}else {
return a*test(a-1);
}
}
}
代码练习:算输入数的阶乘
程序运行顺序:
- 先写好test方法,代码的含义是如果实际参数=1,则结果返回1,如果实际参数不是1,则返回实际参数*这个方法(传进来的实际参数本身-1)
- main方法开始调用test方法,定义一个变量B,它的结果调用test方法
- 给变量b传递实际参数=8,程序会转到我们写好的test方法继续运行,首先会检查传进来的数,传递的数是8会进行下一步,本来程序会执行8* (8-1)这里结束,但是因为我们这里又引用了test结构给a重新赋值,等于传进来的数减去1,所以程序会把返回的结果继续返回该方法继续计算,再次进入test方法计算,这里实际参数变为7,不符合结束条件继续运行计算,返回7*(7-1)算出结果,然后又一次返回到test方法进行运算,依次类推
- 直到运行n次以后传递进来的数=1了,碰到return返回结果,结束方法的调用
- 程序返回到main方法,把通过test方法得出的值赋给变量b并输出,程序结束运行。
阶乘:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!