对象克隆技术

本文介绍了Java中如何通过实现Cloneable接口并重写Object类中的clone()方法来完成对象的克隆操作。提供了完整的示例代码,展示了克隆前后对象的状态变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Java中支持对象的克隆操作,直接使用Object类中的clone()方法即可,方法定义如下:

protected Object clone() throws CloneNotSupportedException

以上方法是后保护的类型,所以在子类中必须覆写此方法,而且覆写之后应该扩大访问权限,这样才能被外部调用,但是具体的克隆方法的实现还是在Object中,所以在覆写的方法中只需要调用Object类中的clone()方法即可完成操作,而且在对象所在的类中必须实现Cloneable接口才可以完成对象的克隆操作。
但是如果直接查询JDK文档会发现Cloneable接口中并没有任何的方法定义,所以此接口在设计上称为一种标识接口,表示对象可以被克隆。
【对象克隆的操作】

class ClonePerson implements Cloneable
{
    private String name=null;
    public ClonePerson(String name){
        this.name=name;
    }

    public void setName(String name){
        this.name=name;
    }

    public String getName(){
        return this.name;
    }

    public Object clone() throws CloneNotSupportedException{
        return super.clone();
    }

    public String toString(){
        return "姓名:"+this.getName();
    }
}
public class CloneDemo
{
    public static void main(String[] args)throws Exception{
        ClonePerson p1=new ClonePerson("张三");
        ClonePerson p2=(ClonePerson)p1.clone();
        p2.setName("Tom");
        System.out.println(p1);
        System.out.println(p2);
    }

}

clone对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aotulive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值