理解参数传递

理解参数传递


一、理解参数传递

Java 的参数是以值传递的形式传入方法中,而不是引用传递。

以下代码中 Dog dog 的 dog 是一个指针,存储的是对象的地址。在将一个参数传入一个方法时,本质上是将对象的地址以值的方式传递到形参中。因此在方法中改变指针引用的对象,那么这两个指针此时指向的是完全不同的对象,一方改变其所指向对象的内容对另一方没有影响。

public class Dog {
    String name;

    Dog(String name) {
        this.name = name;
    }

    String getName() {
        return this.name;
    }

    void setName(String name) {
        this.name = name;
    }

    String getObjectAddress() {
        return super.toString();
    }
}
    @Test
    void test1() {

        Dog dog = new Dog("A");
        log.info(dog.getObjectAddress());//Dog@f2276c9
        func(dog);
        log.info(dog.getObjectAddress());//Dog@f2276c9
        log.info(dog.getName());// A
    }

    private void func(Dog dog) {
        log.info(dog.getObjectAddress());//Dog@f2276c9
        dog = new Dog("B");
        log.info(dog.getObjectAddress());// Dog@12d2ddde
        log.info(dog.getName());// B
    }
  • 愿这盏平安灯,保佑你平安健康!
  • 新的一年,愿你不只是又老—岁!
  • 愿家人身体健健康康,平平安安。
  • 愿你幸福永健康,好运财运长伴你!
  • 愿你家庭美满,身体健康,事业顺利!
  • 许一个美丽的心愿祝福你,微笑甜甜!
  • 希望2022变得好一点,再好一点。冲鸭!
  • 希望我两能走出困境,家庭美满幸福。
  • 我有两个愿望,你在身边,在你身边。
  • 晴天、雨天、阴天,愿你快乐每一天。
  • 愿望不是许出来的,是自己努力换来的!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和烨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值