Java:对clone的运用

1、现有一个对象 User u1 = new User("张三", "25", "Java开发");此时准备再获得一个 完全独立 且 和u1 完全相同的对象u2.

2、User u2 = u1.clone(); 此时生成了一个新的对象u2,并且具有和u1相同的属性值和方法,且两者不互相影响。

3、注意:以上仅适用于无引用类型。 (Shallow Clone)

4、若User类中,含有引用类型属性,则需在User类中另做处理。(Deep Clone)

public class User implements Cloneable{
    private int age;
    private Car car;

    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return this.age;
    }

    public void setCar(Car car) {
        this.car = car;
    }
    public Car getCar(){
        return this.car;
    }

    // 重写clone
    public Object clone() throws CloneNotSupportedException {
        User userClone=(User)super.clone();
        // 调用引用对象的clone方法
        if(car!=null){
            Car carClone = (Car)car.clone();
            userClone.setCar(carClone);
        }

         return userClone;
     }
}  

猜你喜欢

转载自blog.csdn.net/qq_41306795/article/details/82786497
今日推荐