软件构造学习笔记-第七周

本周只有一节课,内容较少。对于不可变类型的相等比较,需要重写equals和hashCode方法,实现观察等价性。对于可变类型,不建议重写以上两方法,按照默认比较方式(比较内存地址)即可。

可变类型的相等关系

1.Object类的equals方法检查的是行为等价性,即两个变量指向同一个对象时才相等。如StringBuilder类的equals方法。
2.所有不可变类都要重写equals方法,实现观察等价性。
对于可变类,直接继承Object类的hashCode和equals方法即可。
如果一定要判断两个可变对象看起来是否一致,最好定义一个新的方法。
3.clone方法创建对象的复制。
浅拷贝只复制引用,深拷贝创建新对象。
满足如下性质

自动封装和相等

1.基本数据类型存放在栈中,对象数据类型 存放在堆中。
2.
3.通过调用valueOf创建整形对象,如果范围是-128~127,则相同值只创建一个对象,拥有行为等价性。执行如下操作返回true

4.执行左侧的结果为false(因为明确声明要创建两个对象),右侧结果为true(同3)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值