目录
1,方法的重载
(使用的方法多时)
定义:
在同一个类里面,其方法允许存在一个以上的同名方法,参数列表不同.
注意:①:必须在同一个类里面
②:方法名必须相同
③:要保证方法的参数列表不同(参数类型,参数个数,参数顺序)
④:和返回值没有关系
判断方式:
两同一不同()
需求:定义一个求两个正整数的加法计算器,定义一个求浮点型double的计算器
在同一个类中,定义一个方法分别打印String,int ,double,boolean;
public class L4_方法的重载 {
public static void main(String[] args) {
System.out.println(add(1, 2));
System.out.println(add(1.3, 1.4));
System.out.println(add(1, 2, 3));
}
//参数类型
public static int add(int a, int b) {
return a + b;
}
/*public static int add(int sum1,int sum2){
return sum1+sum2;
}*/
public static double add(double a, double b) {
return a + b;
}
//参数个数
public static int add(int a, int b, int c) {
return a + b + c;
}
//参数顺序
public static void print(int num, String num1) {
}
public static void print(String num1, int num) {
}
/* public static int print(String num1, int num) {
和返回值无关
}*/
}
2,递归
定义:
方法自己调用自己
需求:算出5阶乘(用递归与不用递归)
public class L8_Methods的递归 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int a = input.nextInt();
System.out.println(rec(5));
/* //不使用递归
int sum=1;
for (int i = 0; i < 5; i++) {
sum*=a--;
}
System.out.println(sum);
}*/
}
public static int rec(int a) {
//出口,不然会报错:java.lang.StackOverflowError,栈溢出
if (a == 1) {
return 1;
}
//自己调自己
int rec = rec(a -1);
return a * rec;;
}
}
注意: 递归要有出口,不然会报错:java.lang.StackOverflowError,栈溢出