Java基础之深浅拷贝(DateTime)

DateTime source =  new DateTime(...);

方法一

DateTime dest = source;     

        这种方法是完全不行的,这种形式只是重新创建了一个引用指向这个对象,不能实现复制操作。

方法二

DateTime dest = source.copy();         

        这种方法和方法1没有区别。

public DateTime copy(){
    return this;
}

 方法三

DateTime dest = source.copy();       

        浅拷贝复制:这种方法使得dest和source指向了不同的对象,完成了对象的复制,但复制不彻底,没有复制到子对象,这就导致更改原数据,新复制数据随之更改。

    public DateTime copy(){
        DateTime dt = new DateTime();
        dt.date = this.date;
        dt.time = this.time;
        return dt;
    }

 方法四

 DateTime dest = source.copy();   

        深拷贝:这种拷贝方式可以彻底分开原对象与现在拷贝之后对象的联系,修改新对象不会影响原对象。 

    public DateTime copy(){
        DateTime dest = new DateTime();
        dest.date = new Date(this.date);
        dest.time = new Time(this.time);
        return dest;
    }

        如上便是对日期时间这个类的深浅拷贝描述,那么我们通过上面的列子就可以举一反三的对其他类进行拷贝,明确复制的对象是否影响原对象。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值