Java中的值传递和引用传递实例介绍

时间:2021-05-20

复制代码 代码如下:
package Object.reference;
public class People {
private String name;
private int age;
public People(){
}
public People(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String toString(){
return "name:" + name + " age:" + age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}

复制代码 代码如下:
package Object.reference;

public class Test {
public static void swap(People a, People b, boolean flag) {
if (flag) {
// 可以通过传递副本修改对象的值
a.setName("changeName");
a.setAge(100);
} else {
//副本交换,并不影响主程序的指针
People c = a;
a = b;
b = c;
}
}
public static void main(String[] args) {
People p1 = new People("yingjie", 23);
People p2 = new People("yuexin", 20);
swap(p1, p2,false);//传递的是p1,p2的副本,函数调用前后p1,p2没任何改变
swap(p1, p2,true);//传递的是p1,p2的副本,可以通过传递副本修改对象的值,函数调用前后p1对象内容改变
}
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章