Java中实现对象的Clone
来源:互联网 发布:机械类软件 编辑:程序博客网 时间:2024/05/19 18:38
Java中实现对象的Clone
1、 声明实现Cloneable接口,并重写clone方法,如果不重写该方法,则不能调用对象的clone方法。
2、 在重写的clone方法中,调用super.clone拿到一个对象,如果父类的clone实现没有问题的话,在该对象的内存存储中,所有父类定义的字段都已经clone好了,该类中的值类型字段和引用类型字段也克隆好了,只是现在的引用类型字段都是浅copy。
3、 把浅copy的引用指向原型对象新的克隆体。
public class Person implements Cloneable {private String name;private Integer age;public Person(String strName, Integer iAge){this.name = strName;this.age = iAge;}@Overrideprotected Object clone() throws CloneNotSupportedException {// TODO Auto-generated method stubreturn super.clone();}}
public class Account implements Cloneable {private Person person;private Integer balance;public Account(Person p, Integer i){this.person = p;this.balance = i;}@Overrideprotected Object clone() throws CloneNotSupportedException {// TODO Auto-generated method stubAccount account =(Account) super.clone();account.person = (Person)this.person.clone();return account;}}
注意点:Object.clone方式是protected(受保护的),该方法只在其子类和包内中可见。
- Java中实现对象的Clone
- java 实现对象的clone
- java中clone一个对象的方法
- 转 java中引用及对象的clone
- 转 java中引用及对象的clone
- java中创建对象的几种方法和clone
- java的对象与引用,影子clone与深度clone
- Java中数组的clone
- Java中clone的用法
- java中clone的用法:
- java中clone的用法
- Java中shallow clone 与deep Clone的区别
- Java中shallow clone 与deep Clone的区别
- java对象克隆clone
- java 对象 克隆 clone
- Java clone()克隆对象
- JAVA 对象克隆clone
- Java 对象Clone
- LaTeX如何设行间距为20磅
- string 和StringBuilder的引用的区别
- 公司间转移过帐介绍与IMG设置(公司间采购订单+交易价格确定+流程测试)
- EXTJS 专题 TreePanel
- 正则表达式函数待完善
- Java中实现对象的Clone
- 举例详细说明javascript作用域、闭包原理以及性能问题
- 假如没有任意一列可以做为排序,可以参考以下语句建立分页存储
- Jdbc调用存储过程
- 颠覆社交购物的Fab3.0 同性恋网站的华丽转身
- Linux下搭建SVN服务器
- java 访问权限表
- 跟我学MySQL存储过程
- 大型网站架构不得不考虑的10个问题