Java---方法重载---方法递归

本文详细介绍了Java中方法的定义,包括访问修饰符、返回值类型、方法名和参数列表,以及四种基本方法类型。同时,讲解了方法重载的概念,通过示例展示了如何在代码中实现。接着,阐述了递归的概念,给出了求阶乘的递归代码示例,并指出了适合使用递归的场景。最后,探讨了如何设计递归代码的要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、如何定义java中的方法

所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。方法方便代码的复用。

语法:

1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用

2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

3、 方法名:定义的方法的名字,必须使用合法的标识符

4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。

根据方法是否带参、是否带返回值,可将方法分为四类:

1)无参无返回值方法

2)无参带返回值方法

3)带参无返回值方法

4)带参带返回值方法

方法重载:

发生在同一个类中,定义了若干个方法名称相同,参数列表不同(参数的个数或类型),与返回值无关的方法。

例如:我们要求int类型的数字之和,还有double类型的数字之和就可以定义俩个名字都为sum而返回值类型不同的方法。

我们使用的println()就是方法重载。

public class Exercise {
    public static void main(String[] args) {
  int a = 10;
        int b = 20;
        int ret = add(a, b);
        System.out.println("ret = " + ret);

        double a2 = 10.5;
        double b2 = 20.5;
        double ret2 = add(a2, b2);
        System.out.println("ret2 = " + ret2);

        double a3 = 11.5;
        double b3 = 12.5;
        double c3 = 13.5;
        double ret3 = add(a3, b3, c3);
        System.out.println("ret3 = " + ret3);
}
  public static int add(int a, int b) {
        return a + b;
    }

    public static double add(double a2, double b2) {
        return a2 + b2;
    }

    public static double add(double a3, double b3, double c3) {
        return a3 + b3 + c3;
    }
}

二丶方法递归

1.递归的概念

一个方法在执行过程中调用自身,就称为"递归".

递归相当于数学上的"数学归纳法",有一个起始条件,然后有一个递推公式.

例如,我们求N!

起始条件:N=1的时候,N!为1,这个起始条件相当于递归的终止条件.

递归公式:求N!,直接不好求,可以把问题转成N! = >N*(N-1)!

 代码示例:

public class Exercise {
    public static void main(String[] args) {

 int num = 5;
        int ret = factor(num);
        System.out.println("ret = " + ret);
}
  private static int factor(int num) {
        if(num == 1){
            return 1;
        }
        return num*factor(num-1);
    }
}



//执行结果
ret = 120

接下来说一说哪种场景下可以使用递归来解决问题:

1.大问题可以拆分为多个子问题的解.(递)

2.拆分后的子问题和原问题除了数据规模,其他解决思路完全相同.

3.存在递归的终止条件(归)

 浅谈一下如何写出递归代码:

1.一定要关注方法的语义(定义出来的方法能干啥事,不要纠结具体人家咋实现),我们关心的是如何利用这个方法帮助我解决问题.

2.当前我只能干啥,就在本方法中处理,处理不了的问题交给这个函数

3.将结果进行拼接.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值