一.方法的重载(Overload):
方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。方法的重载即:同名不同参
与返回值类型无关,与访问权限修饰符无关,与方法体无关
- 参数不同指的是参数的类型不同或是参数的个数不同
- 构造方法也可以重载
方法的重载的好处:
为了把功能相似相同的方法用同一个名字
1.示例:方法重载同名不同参
public class Student {
public void intro(String name) {
System.out.println("我叫" + name);
}
public void intro(int age) {
System.out.println("我今年" + age + "岁");
}
public void intro(String name, int age) {
System.out.println("我叫" + name + "今年" + age + "岁");
}
}
2.示例:重载构造方法
public class Student {
private String name; // 姓名
private int age; // 年龄
public Student(String name) {
this.name = name;
}
public Student(int age) {
this.age = age;
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public void intro() {
System.out.println("我叫" + name + "今年" + age + "岁");
}
}
二.递归:
自己调自己~递归
递归的问题:StackOverflowError 栈溢出 内存溢出
1.递归三大要素
第一要素:明确你这个函数想要干什么
第二要素:寻找递归结束条件
第三要素:找出函数的等价关系式
2.案例:
斐波那契数列:
下一个数字是前两个数字之和:
eg:0,1,1,2,3,5,8...
我们知道除了0和1,第number个数字等于第number-1个数和第number-2个数的和
运用递归:
public int feibonaqie(int number){
if(number>1){
return feibonaqie(number-1)+feibonaqie(number-2);
}else {
return number;
}
}