对象集合与组合_第1页
对象集合与组合_第2页
对象集合与组合_第3页
对象集合与组合_第4页
对象集合与组合_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

万物有万物有对象的比较3要对多个对象进行排序,就必须解决两个对象间的大小比较问题,几乎所有的编程语言,对于数值类型(比如整数或浮点数),都已经支持大小比较,但那些对于我们自己设计出来的类所创建•••45值此对象小于零此对象等于此对象大于intCompareTo(Object判断两个对判断两个对象是只需要知道两个对象是否相等,而不需要知道这两个对象“谁大谁小”,这时,可以重写Object6重写Object.Equals自反性(Reflexive):即重写Object.Equals自反性(Reflexive):即自身与自身相对称性(Symmetric):若a与b相等,则b与a也相等,这就是说,a.Equals(b)与b.Equals(a)的值一定是相等的。传递性(Transitive):若a与b相等,b与c相等,则a与c相等。这就是说,如果a.Equals(b)和b.Equals(c)的值都为True,则a.Equals(c)的值也为True•••7重写GetHashCode重写GetHashCode重写了Equals方法之后,也必须重写GetHashCode方法,否则此对要求如果两个对象的比较结果相等,则每个对象的GetHashCode都必须返回同一个值。但是,如果两个对象的比较结果不相等,则这两个对象的GetHashCode方法不一定返回不同的值。一个对象的GetHashCode方法必须总是返回同一个哈希代码,但前提是没有修改过对象状态,对象状态用来确定对象的Equals方法的返回值。请注意,这仅适用于应用程序的当前执行,再次运行为了获得最佳性能,哈希函数必须为所有输入生成随机分布••89对象比对象比较在实际开发中如果需要比较一些“自身不能比较大小”的对象,我们可以定义一个第三方的类,让它来负责决定某种类型的对象“谁大谁小”。这个完成对象比较任务的“中间人”,可称之为“对象比较器(ObjectComparer)”。对象比较器应该实现IComparerIComparer<T>示例ObjectComparer最常见的“对象集合”最常见的“对象集合”——数在.NET中,数组是派生自System.Array•••.对数组中的元素.对数组中的元素进行“批量类型转定义元素类型转换器完成转换工作对每个数组对每个数组元素的“深加当需要循环迭代数组中的所有元素,并且对这些元素都施加同样的处理工作时,可以调用数组基直接使用Sort()方直接使用Sort()方法即可,此方法拥有17种重载形式,请仔细阅读MSDN,以了解每种方法的适•••可调用数组基类Array可调用数组基类Array的Exists<T>、Find<T>和BinarySearch<T>方法存其子类的对象。这种数组称为“多态数组••除了数组,.N除了数组,.NEtHT、Dctnry等其它的集合类型,每种类型都拥有丰富的方法,但其使用方法都与数组很类似,可以通过仔细阅读DN,举一反三地掌握其用法。请完成以下自学任务(1)List<T>实现了哪些接口?这些接口有什么用类整理好,确保以后可以在自己的程序中使用它。对象组合指的是对象之间的相互包容关系正在运行的程序=对象+对象之间的合作关系对象的组合方一个对象包容另一个对象,称为“对象组合b对象的组合方一个对象包容另一个对象,称为“对象组合bABAB对象包容的两种方式都可以很方便地使用C#实现。Demo(ObjectEmbodied):实现对象包容的两种••对象包容的两种方式都可以很方便地使用C#实现。Demo(ObjectEmbodied):实现对象包容的两种••bABAB••Framework••Framework••“对“对象组合”设计实假设有一个卖书的网上电子书店,每本书都有作者,定价,出版社等信息,同时,每个读者又可请设计一组类表达上述信息结构,并定下各个对金旭亮面向对24列课程(共31页“另类”对象组合方式——“另类”对象组合方式——嵌套示例项目属性窗属性窗下部:信息输出下部左部中间右部示例项目WPFWPF对象组合的特例——对象组合的特例——自引用“金旭亮面向对28列课程(共31页Demo(LinkListExample):金旭亮面向对象9列课程(共31页CBA见示例项目TreeExampleA前序遍历结果BCDE金旭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论