ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

软件构造博客2

2022-05-23 10:35:27  阅读:205  来源: 互联网

标签:对象 Object equals 等价 博客 equal 构造 same 软件


今天的博客有关于ADT和OOP的等价性

等价关系的定义以前是学过的:自反传递对称

在Immutable类型中,如果在AF中能够映射到同样的结果,那么二者就具有等价性

而站在外部观察者角度:对两个对象调用任何相同的操作,都会得到相同的结果,则认为这两个对象是等价 对于equals来说有一些需要注意的事项: 在自定义ADT时,需要重写Object的equals(); 对基本数据类型,使用==判定相等 对对象类型,使用equals() 对于equals() in Object:“相等”的对象,其hashCode()的结果必须 一致,不相等的对象,也可以映射为同样的hashCode,但性能会变差 对于Mutalbe种类: 观察等价性:在不改变状态的情况下,两个mutable对象是否看起来一致 行为等价性:调用对象的任何方法都展示出一致的结果 我们往往倾向于实现观察等价性 这里记录了观察等价性和行为等价性的几个例子 Date类的equals()的spec:"Two Date objects are equal if and only if the getTime method returns the same long value for both. “ 观察等价性 § List类的equals()的spec:"Returns true if and only if the specified object is also a list, both lists have the same size, and all corresponding pairs of elements in the two lists are equal. “ – Two lists are defined to be equal if they contain the same elements in the same order. 观察等价性 StringBuilder类的equals继承自Object类 J 行为等价性 这里记录了一些要点: 对可变类型,实现行为等价性即可 只有指向同样内存空间的objects,才是相等的。 所以对可变类型来说,无需重写这两个函数,直接继承Object的两个方法即可。 如果一定要判断两个可变对象看起来是否一致,最好定义一个新的方法

标签:对象,Object,equals,等价,博客,equal,构造,same,软件
来源: https://www.cnblogs.com/fsscg/p/16300231.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有