对象的克隆Cloneable

版权声明: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();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/LemonSnm/article/details/89763392
今日推荐