72java对象克隆

99 阅读1分钟

对象克隆

一、具体内容

克隆是一个对象的复制概念,但是这种概念一般使用比较少,因为很少有人去复制已经存在的对象。

 

Object类本身就支持对象克隆方法,可以发现:

protected Object clone() throws

CloneNotSuppportedException;但是要想实现克隆,那么并不是所有类的对象都可以随便克隆,需要被克隆的对象所在类一定要实现Cloneable接口。

 

而最关键的是该接口并没有任何的抽象方法,所以该接口只是一个标识接口,表示一种能力。

 

二:范例:对象克隆实现  

package cn.mldn.demo;

class Person implements Cloneable { // 必须实现此接口

      private String name ;

private int age ;

public Person( String name,int age) {

      super();

this.name = name;

this.age = age;

}

public void setName( String name) {

      this.name = name;

}

public void setAge(int age) {

      this.age = age;

}

@Override

public String toString() {

      return "Person [ name=" + name + ", age=" + age + "]";

}

}

public Object clone() throws CloneNotSupportedException {

      return super.clone(); //父类负责克隆

}

public class TestDemo {

      public static void main(String[] args) throws Exception {

            Person perA = new Person("张三",10) ;

            Person perB = (Person) perA.clone() ;

            perB.setAge(20);

            System.out.println(perA);

System.out.println(perB);

}

}

 

结果:

 

Person [name=张三, age=10]

Person [name=张三, age=20]

 

对象克隆的操作本身意义不大,关键是要清楚标识接口的作用。表示的是一个能力,并不是在规定操作时的方法,这个在Java中是随处可见的。