Java中方法的重载与递归

 

Java中方法的重载与递归

一、方法的重载

1.在同一个类中,多个方法,方法名相同,参数列表不同(方法签名不同)

其中参数列表不同有以下几种情况
参数个数
参数类型不同
当类型不同的时候,顺序不同也叫参数列表不同
2.重载方法如何调用

根据参数进行匹配不同的方法,只看调用时候的参数列表
3.作用

方法的重载是一个类中封装的一种体现,也是一个类中多态的一种体现
方法的重载和修饰符无关
方法的重载有没有返回值类型无关
方法的重载和返回值类型无关
方法的重载和参数的名字无关
方法的重载只和方法名与参数列表有关
4.举例

public class OverLoad06{
    public static void main(String[] args){
        //调用求长方形面积
        System.out.println(getAera(5,6));  
        //调用求圆的面积
        System.out.println(getAera(1));
        //调用求梯形的面积
        System.out.println(getAera(1,2,3));
    }
    public static double getAera(double a,double b){
        System.out.println("长方形面积为");
        return a*b;
    }
    public static double getAera(double a){
        System.out.println("圆形面积为");
        return 3.14*a*a;
    }
    public static double getAera(double a,double b,double c){
        System.out.println("梯形面积为");
        return  (a+b)*c/2;
    }
}


二、方法的递归

1.方法的递归就是在方法中自己调用自己

2.定义

递归头: 停止自己调用自己的条件

递归体: 自己调用自己

临界条件: 停止自己调用自己的条件,递归头

递归前进段:还没有到临界条件之前自己调用自己的阶段

递归后退段:把结果返回给上一层

3.举例

public class Recursion07{
    public static void main(String[] args){
        System.out.println(recursion(2));
        cfb(5);
    }
    
    //实现阶乘: 5! = 5*4*3*2*1
    /*
        1.方法的作用: 求某个数的阶乘 
        2.返回值: int
        3.参数: int i =5
        
        临界条件: i=1 1的阶乘就是1
        返回值: 阶乘的结果,如果参数是<0的值,返回-1
    */
    public static int recursion(int i){
        if(i<=0){
            return -1;
        }
        if(i==1){
            return 1;
        }
        
        return i*recursion(i-1);
    }
    
    //实现九九乘法表
    //打印几几乘法表  
    public static void cfb(int i){
        if(i<1){
            System.out.println("你输入的数字有误");
            return;
        }
        if (i == 1) {
            System.out.println("1*1=1");
        } else {
            cfb(i-1);
            for(int j=1;j<=i;j++){
                System.out.print(j + "*" + i + "=" + j * i + "\t"); 
            }
                System.out.println();
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值