滚雪球学Java(34):探究Java方法的神奇魔法和参数传递奥秘


本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶,欢迎大家关注&&收藏!持续更新中,up!up!up!!


前言

  在Java中,方法是一组执行特定任务的语句。通过方法,可以将代码分成模块,使代码更加清晰和易于维护。Java方法是在类中定义的,方法具有返回类型、名称和参数列表。

方法的定义

Java方法的基本结构如下:

<访问修饰符> <返回类型> <方法名>(<参数列表>) {
    // 方法体
    return <返回值>;
}

  其中,访问修饰符可以是public、private或protected;返回类型可以是任何Java数据类型,或者void;方法名是由字母、数字和下划线组成的标识符;参数列表是由逗号分隔的一组参数,每个参数由类型和名称组成。

例如,下面是一个简单的Java方法,它把两个整数相加,并返回结果:

public int add(int num1, int num2) {
    int result = num1 + num2;
    return result;
}

方法的调用

  要使用Java方法,必须先创建一个类的实例。然后,可以使用实例名称后跟一个点号和方法名称来调用方法。例如,如果已经创建了一个名为myClass的类的实例,并且该类包含一个名为myMethod的方法,则可以使用以下语法调用该方法:

myClass.myMethod(<参数列表>);

例如,要使用之前定义的add()方法,可以使用以下语法:

int sum = add(3, 4);

参数传递

Java方法参数传递基本上分为值传递和引用传递两种形式。

值传递

  值传递是指当我们将一个基本数据类型(如int、double等)作为参数传递给一个方法时,实际上传递给方法的是该值的一份拷贝。因此,在方法中对该参数进行修改不会影响原始变量。

例如,以下代码会将变量num的值从5改为10:

public void changeNum(int num) {
    num = 10;
}

int num = 5;
changeNum(num);
// num的值仍为5

引用传递

  引用传递是指当我们将一个对象作为参数传递给一个方法时,实际上传递给方法的是该对象在内存中的地址。因此,在方法中对该参数进行修改会影响原始对象。

例如,以下代码会将list中的第一个元素的值从3改为5:

public void changeList(List<Integer> list) {
    list.set(0, 5);
}

List<Integer> list = new ArrayList<>();
list.add(3);
changeList(list);
// list的第一个元素的值为5

方法重载

  方法重载是指在同一个类中定义多个方法,这些方法具有相同的名称但参数列表不同。当代码调用具有重载名称的方法时,编译器根据传递的参数类型和数量选择正确的方法。

例如,以下示例定义了两个名为add()的方法,一个接受两个整数作为参数,另一个接受两个双精度浮点数作为参数:

public int add(int num1, int num2) {
    int result = num1 + num2;
    return result;
}

public double add(double num1, double num2) {
    double result = num1 + num2;
    return result;
}

int sum1 = add(3, 4);
double sum2 = add(2.5, 3.0);

总结

  Java方法是一组执行特定任务的语句,可以将代码分成模块,使代码更加清晰和易于维护。Java方法可以具有返回类型、名称和参数列表。方法的调用基于类的实例,并使用实例名称后跟一个点号和方法名称的语法。Java方法参数传递基本上分为值传递和引用传递两种形式。方法重载是指在同一个类中定义多个方法,这些方法具有相同的名称但参数列表不同。

附录源码

  如上涉及所有源码均已上传同步在 Gitee,提供给同学们一对一参考学习,辅助你更迅速的掌握。

☀️建议/推荐你


  无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门Java编程,就像滚雪球一样,越滚越大,指数级提升。

关于我


我是bug菌,CSDN | 掘金 | infoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

你可能感兴趣的:(《滚雪球学Java》,java,开发语言,Java零基础入门,Java方法,参数传递)