您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第三季学习笔记-对象的克隆
发布时间:2017-08-10 15:29:38编辑:雪饮阅读()
对象的克隆
将一个对象复制一份,称为对象的克隆技术
在Object类中存在一个clone方法:
protected Object clone() throws CloneNotSupportedException
如果某个类的对象要想被克隆,则对象所在的类必须实现Cloneable接口。此接口没有定义任何方法,是一个标记接口。
示例:
主程序:对对象进行克隆的类Test
package com.vince.clone;
public class Test {
public static void main(String[] args) {
Cat c=new Cat("小白",3);
try{
Cat c1=(Cat)c.clone();
System.out.println(c);
System.out.println(c1);
}
catch(CloneNotSupportedException e){
e.printStackTrace();
}
}
}
待克隆类:Cat
package com.vince.clone;
//这里仅仅是标记性的实现下Cloneable接口
public class Cat implements Cloneable {
private String name;
private int age;
public Cat(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Cat() {
super();
// TODO 自动生成的构造函数存根
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Cat [name=" + name + ", age=" + age + "]";
}
//重写Object的clone方法
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO 自动生成的方法存根
return super.clone();
}
}
其实克隆可以通过循环new的方式实现,那么为什么还要clone呢?
因为当创建对象时需要对对象的各种计算,主要是内存申请的分配方面。这样就很耗费性能了。而clone只需要读取原对象的相关信息而免于计算,这样以来性能就得到了大大提升。
关键字词:javase,对象的克隆