版权声明:LemonSnm https://blog.csdn.net/LemonSnm/article/details/89763392
1.Cloneable
将一个对象复制一份,称为对象的克隆技术。
如果某个对象想要被克隆,则对象所在的类必须实现Cloneable接口。此接口 没有定义任何方法,是一个标记接口。
2.对象需要具备克隆的功能:
①实现Cloneable接口
②重写Object中的clone方法
3.Dog.java(可以被克隆的对象)
package com.lemon;
/**
* 实现克隆功能:
* 1.实现Cloneable接口
* 2.重写Object的clone方法
* @author lemonSun
*
* 2019年5月2日下午6:24:44
*/
public class Dog implements Cloneable{
private String name;
private int age;
public Dog(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Dog() {
super();
}
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 "Dog [name=" + name + ", age=" + age + "]";
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
4.测试:
package com.lemon;
/*
* 克隆对象比一个一个创建对象效率要高
*/
public class CloneableText {
public static void main(String[] args) {
Dog dog = new Dog("旺旺",3);
try {
//克隆dog.clone()
Dog newDog = (Dog) dog.clone();
System.out.println(dog);
System.out.println(newDog);
System.out.println("dog == newDog:" + (dog == newDog));
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}