Java中的值传递和引用传递实例介绍
时间:2021-08-21 09:11:20|栏目:JAVA代码|点击: 次
复制代码 代码如下:
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;
/* java 中的值传递和引用传递
https://www.jb51.net/clara/archive/2011/09/17/2179493.html
java 中没有引用传递,都是值传递的
*/
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对象内容改变
}
}


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




