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