5.Java方法详解【方法定义、方法调用、值传递和引用传递、方法重载、可变参数、递归】

1.什么是方法

在这里插入图片描述
在这里插入图片描述

2.方法调用

在这里插入图片描述

3.值传递和引用传递

Java 中采用的是值传递
值传递和引用传递的区别:
值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

为什么说java是值传递呢?
如果是基本数据类型,Java中传递的是基本类型的字面量值的拷贝
如果是引用数据类型,传递的是引用的对象在堆中地址的拷贝

4.方法的重载

方法重载的规则:

  1. 方法名称必须相同
  2. 参数列表不同(个数不同、类型不同、参数排列顺序不同)
  3. 方法的返回类型可以相同也可以不同(与返回值没有关系)
  4. 仅仅返回类型不同不足以称为方法的重载

实现理论:
方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法;如果匹配失败,则编译器会报错

5.命令行传参(了解)

执行一个class方法,需要找到其包的路径进行加载,否则执行不了
在这里插入图片描述
在这里插入图片描述

6.可变参数

  1. 在方法声明中,在指定参数类型后加一个省略号(…)
  2. 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

传的时候,也可以传一个数组
在这里插入图片描述

7.递归

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,方法参数传递的是值传递。也就是说,当我们调用一个方法时,实参的值会被复制到形参中,方法内部对形参的修改不会影响到实参的值。如果形参是对象类型,那么复制的是对象的引用,也就是说,方法内部对对象属性的修改会影响到原对象。 举个例子,假设有以下代码: ``` public class Test { public static void main(String[] args) { int a = 1; changeValue(a); System.out.println(a); // 输出1 } public static void changeValue(int b) { b = 2; } } ``` 在这个例子中,我们定义了一个名为changeValue的方法,它接收一个int类型的参数b。在main方法中,我们定义了一个int类型的变量a,并将其赋值为1。然后我们调用changeValue方法,并将a作为参数传递给它。在changeValue方法内部,我们将b的值修改为2。但是,在main方法中,我们输出a的值时,发现它仍然是1。这就说明了Java方法参数传递的是值传递。 如果我们将上面的例子稍微修改一下,让changeValue方法接收一个对象类型的参数,那么情况就会有所不同: ``` public class Test { public static void main(String[] args) { Person p = new Person("Tom"); changeName(p); System.out.println(p.getName()); // 输出Jerry } public static void changeName(Person person) { person.setName("Jerry"); } } class Person { private String name; public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` 在这个例子中,我们定义了一个名为Person的类,它有一个名为name的属性和相应的getter和setter方法。在main方法中,我们创建了一个Person对象p,并将其名字设置为Tom。然后我们调用changeName方法,并将p作为参数传递给它。在changeName方法内部,我们将person的名字修改为Jerry。最后,在main方法中,我们输出p的名字时,发现它已经变成了Jerry。这就说明了Java方法参数传递的是值传递,但是如果形参是对象类型,那么复制的是对象的引用,也就是说,方法内部对对象属性的修改会影响到原对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值