理解参数传递

理解参数传递

  • 一、理解参数传递


一、理解参数传递

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变得好一点,再好一点。冲鸭!
  • 希望我两能走出困境,家庭美满幸福。
  • 我有两个愿望,你在身边,在你身边。
  • 晴天、雨天、阴天,愿你快乐每一天。
  • 愿望不是许出来的,是自己努力换来的!

你可能感兴趣的:(java常规,java,开发语言)