文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java程序中方法的用法重载和递归

2024-04-02 19:55

关注

前言

“方法”又被称为“函数”,其他的编程语言也有这个概念,重要性不言而喻,在这个文章,将介绍如何定义和使用方法。

一、方法的基本用法

1.什么是方法

在Java中,方法定义在类中,它和类的成员属性(数据成员)一起构建一个完整的类。构成方法有四大类——返回值类型、方法名称、参数、方法体。

方法就像一个功能,当我们需要用到的时候,就去调用它,不用的时候就放到一边。

也可以说它是一本工具书,当我们需要查看的时候,我们就会去找这本书查资料,不用的时候就放在书柜里面。

2.方法的基本定义

//方法定义
public static 方法返回值 方法名称([参数类型 形参 …]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参…);

可以看出,方法包含一个方法头和一个方法体。

返回值类型:指定了方法返回的数据类型。它可以是任意有效的类型,包括构造类型(类就是一种构造类型)。如果方法没有返回值,则其返回类型必须是void。方法体中的返回值类型要与方法头中定义的返回值类型一致。


public class TestDemo {

    public static void main(String[] args) {
        int a = 10;
        int b = 20;

// 方法的调用
        int ret = add(a, b);
        System.out.println("ret = " + ret);
    }
// 方法的定义
    public static int add(int x, int y) {
        return x + y;
    }
}

在这里插入图片描述

3.方法调用的执行过程

4.方法中的实参和形参

形参:

在定义一个方法时,参数列表中的参数个数至少为1个。

实参:

调用方法时,需要调用者提供与原方法定义相匹配的参数(类型、数量、顺序都一致)

在这里插入图片描述

那么形参与实参的关系又是怎样的呢?

在这里插入图片描述

二、方法的重载

1.重载的概念

【概念】

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。

2.例题分析

认真看下面例子中的add方法


  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 = 10.5;
        double b3 = 10.5;
        double c3 = 20.5;
        double ret3 = add(a3, b3, c3);
        System.out.println("ret3 = " + ret3);
    }

    public static int add(int x, int y) {
        return x + y;
    }

    public static double add(double x, double y) {
        return x + y;
    }

    public static double add(double x, double y, double z) {
        return x + y + z;
    }


在这里插入图片描述

【总结】

方法的名字都叫 add. 但是有的 add 是计算 int 相加, 有的是 double 相加; 有的计算两个数字相加, 有的是计算三个数
字相加.
同一个方法名字, 提供不同版本的实现, 称为 方法重载

【注意】

一.方法名一定要相同。
二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1.如果参数个数不同,就不管它的参数类型了!
2.如果参数个数相同,那么参数的类型必须不同。
三.方法的返回类型、修饰符可以相同,也可不同。


data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

三、方法的递归

1.递归定义

简单来说,递归算是套娃。
从前有座山,山里有座庙,庙里有个老和尚,老和尚正在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚,老和尚正在给小和尚讲故事:…

除非老和尚不讲了,否则这个故事就一直套娃下去。

递归,就是在运行的过程中调用自己。

构成递归需具备的条件:

2.例题分析

举个例子:递归求 N 的阶乘


 public static void main(String[] args) {
        int n = 5;
        int ret = factor(n);
        System.out.println("ret = " + ret);
    }
    public static int factor(int n) {
        System.out.println("函数开始, n = " + n);
        if (n == 1) {
            System.out.println("函数结束, n = 1 ret = 1");
            return 1;
     }else{
            int ret = n * factor(n - 1);
            System.out.println("函数结束, n = " + n + " ret = " + ret);
            return ret;
        }
    }

分析递归过程如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.递归应用场景

递归算法一般用于解决三类问题:

【注意】

虽然递归操作有很多的优点,但是缺点也很明显

下面给大家推荐递归的两个经典例题:

有兴趣的同学可以去自行尝试!

总结

最近在看《士兵突击》,迷惘了,希望能够找点东西激励自己。《士兵突击》在某种程度上,真的让我感悟良多。推荐大家去看看。
里面的台词让我受益良多。
“心稳了,手也就稳了”
“想到和得到之间还有两个字,就是做到”

各位,共勉了!

到此这篇关于Java程序中方法的用法重载和递归的文章就介绍到这了,更多相关Java 方法 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯