软件构造第三次笔记

等价性:

1. 行为等价性

行为等价性是针对方法这一层级的,即两个对象,如果调用他们的所用方法,最后的返回值/操作结果都一样,那么就说明他们具有行为等价性

2.观察等价性

观察等价性是针对对象的成员变量的,即两个对象,如果他们的observer返回值都一样,那么就说明他们是具有观察等价性

3.引用等价性

没有重写的equals方法的默认返回值,判断两个引用的地址是否相等,如果相等那么就具有引用等价性

计算机概念的等价:自反对称传递,这也是我们重写equals方法时所需要遵守的原则

hashcode:

通过成员变量的值来进行进制换算,得到新的结果,作为自身的hashcode,原则上,等价的对象应该具有相同的hashcode,不等价的对象应该具有不同的hashcode。hashcode可以在集合中判断是否已经有相同元素在里面了。父类重写了hashcode,如果没有特别需要,子类不需要重写hashcode。

mutable对象:对于mutable对象,一般来说无需重写hashcode和equals,实现行为等价性即可

引用与地址:代码快照

String b=new String("012938902183")

这个中,左边的b是一个引用,指向的是一个地址空间,而右侧是动态开辟的那个地址空间。由于String为immutable,所以若改变b的值,则会新开辟地址空间,然后 把b的指向改为新地址。区分生命与实际地址空间,可以让我们提高代码的可读性,可以用父类的引用开辟子类的空间,实现子类的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值