一个关于理解浅拷贝与深拷贝的小程序
来源:互联网 发布:mac 图片 整理 编辑:程序博客网 时间:2024/06/11 12:50
浅拷贝基本数据类型值传递,引用类型是引用传递。
深拷贝则生成新的实例对象。
这里的深拷贝是使用了copy constructor方式。public class Person {
String name;
private String sex;
private int age;
public Person(String name,String sex,int age){
this.name = name;
this.sex = sex;
this.age = age;
}
public Person(Person p){ //拷贝构造方法,复制对象
this.name = p.name;
this.sex = p.sex;
this.age = p.age;
}
public void setAge(int m){
this.age = m;
}
public String toString(){
return name +" "+ sex+" "+ age;
}
}
public class Asian {
private String skin;
Person person;
public Asian(String skin,Person person){
this.skin = skin;
this.person = person; //引用赋值
}
public Asian(Asian asian){ //拷贝构造方法,复制对象
this(asian.skin,asian.person);
}
public String toString(){
return skin+" "+ person;
}
public static void main(String[] args){
Person p1 = new Person("shaojianhua","mam",23);
Person p2 = new Person(p1);
p2.setAge(24);
StdOut.println(p1);
StdOut.println(p2);
Asian a1 = new Asian("yellow",new Person("shaojianhua","mam",23));
Asian a2 = new Asian(a1);
a2.person = new Person(a1.person);
a2.person.setAge(24);
/*Asian a2 = new Asian(a1);
a2.person.setAge(24);*///a2、a1相同引用
StdOut.println(a1);
StdOut.println(a2);
}
}
- 一个关于理解浅拷贝与深拷贝的小程序
- 关于Python 浅拷贝与深拷贝的一些理解
- 关于Python中深拷贝与浅拷贝的理解(一)---概念
- 关于Python中深拷贝与浅拷贝的理解(二)---排bug
- 关于Python中深拷贝与浅拷贝的理解(三)---监视数据是否变化
- python 深拷贝与浅拷贝理解
- 对深拷贝与浅拷贝的理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- 【C++】对深拷贝与浅拷贝的再次理解
- 对深拷贝与浅拷贝的再次理解
- windows安全防护--cmd劫持
- 报错(Error:Configuration with name 'default' not found.)
- java web工程启动socket服务
- python中自定义排序函数
- 常用降维方法
- 一个关于理解浅拷贝与深拷贝的小程序
- windows RabbitMQ service install 失败
- 冒泡排序思路与代码实现(三种版本)
- java hashmap 源码分析
- 思考卷积神经网络(CNN)中各种意义
- DOM、BOM相关方法及属性
- oj之输入输出
- 27. Remove Element
- 在linux里如何建立一个快捷方式,连接到另一个目录