👀作者简介:大家好,我是大杉。
🚩🚩 个人主页:爱编程的大杉
支持我:点赞+关注~不迷路🧡🧡🧡
✔系列专栏:javase基础⚡⚡⚡
(❁´◡`❁)励志格言:在我有生之日,做一个真诚的人,不放弃对生活的热爱和执着,在有限的时空里,过无限广大的日子。(by 三毛)
🤞🤞
文章目录
一⛳重载的基本用法?
看下面这段代码?
public class test {
public static void main(String[] args) {
double a = 3.14;
double b = 4.12;
int c=2;
int d=3;
System.out.println(sum(a, b));
System.out.println(sum(c, d));
}
public static int sum(int a, int b) {
return a + b;
}
public static double sum(double a, double b) {
return a+b;
}
}
定义多个方法使它们的方法名相同,参数列表不同,传参数时实参根据自身类型,选择相应的方法进行运算的方式叫做方法重载
一、为什么要设计重载?
举个例子👀:我们java通常使用的打印方法System.out.println(),其实也是这个原理,在打印时,我们不能为每一个不同的数据类型都定义一种打印方法,只能放在一个方法了,根据数据类型自行选择打印方式
二、如何判断是不是重载?
1.重载的特征:
2.常见案例:
1.不能完全一样
2.正确案例
3.正确案例:
三.递归的条件与本质
如果没有限制条件会怎么样?
方法调用时是在栈内存中开辟一块内存空间,如果没有限制条件。会使方法无限次调用,造成栈溢出。因为栈内存使有一定限度的。
四.典型例题
1.斐波那契额数列(多路递归)
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println(feibona(n));
}
public static int feibona(int n)
{
if(n==1)
{
return 1;
}
else if(n==2)
{
return 1;
}
else
{
return feibona(n-1)+feibona(n-2);
}
}
2.求n的阶乘(单路递归)
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
fac(n);
}
public static int fac (int n)
{
if(n==1)
{
return 1;
}
else
{
return n*fac(n-1);
}
}
以4的阶乘为例