《.NET框架程序设计》第六章 通用对象操作
来源:互联网 发布:阿里云自动化测试 编辑:程序博客网 时间:2024/06/05 04:04
一、对象的唯一性识别:即判断两个引用是否指向了同一个对象?可以使用”= =” 操作符来比较两个引用,也可以使用System.Object的ReferenceEquals的静态方法。
二、对象的散列码:每一个对象都有一个Int32类型的散列码,这样任何对象实例就都能被放入一个散列表集合中。
三、对象克隆:如果一个类希望自己的实例能够被克隆,则该类应该实现ICloneable接口。并在接口的Clone方法中实现拷贝的语法。
四、浅拷贝:当对象的字段值被拷贝时,字段引用的对象不会被拷贝。
深拷贝:对对象实例中字段引用的对象也进行拷贝。对于对象实例字段引用的对象中又引用的对象……都要进行拷贝。也就是说,执行深拷贝后,原来的对象和新创建的对象不会共享任何东西;改变一个对象对另一个对象没有任何影响。
五、浅拷贝和深拷贝的实现:如果希望对象的实例实现浅拷贝,可以在对象的Clone方法中调用System.Object的受保护方法MemberwiseClone即可。注意:MemberwiseClone 方法不会为新对象调用构造器,值类型实例本身就支持浅拷贝。如果要实现深拷贝,则需要在我们的引用类型或者值类型的Clone方法中自己实现(当然,先要实现ICloneable接口)。因此,一个对象的Clone方法,即可能是浅拷贝,也可能是深拷贝,具体要看这个对象的说明文档。
六、对象相等:System.Oject类型中Equals方法的实现是比较两个引用是否指向同一个对象,如果我们需要判断的是两个对象是否有相同的"值",则必须重写Equals方法。如果我们定义的类型的基类型没有继承Object.Equals方法的实现(即基类型也重写了Equals方法),那么我们在重写Equals方法时应该先调用基类型的Equals方法。
七、Equals方法的两种形式:System.Object类型中的Equals方法有两种形式:
虚函数形式public virtual bool Equals(object);--它使得各个对象可以重写这个方法。
静态函数形式public static bool Equals(object, object);
--它可以保证在某个对象参数为null时,也不会抛出异常。
八、引用类型和值类型的Equals方法的不同:引用类型继承的Equals判断的是引用相等;而值类型继承的Equals判断的是值相等。
九、对象的GetType方法返回的始终是对象的原始类型:对于包装了一个父类外衣的子类对象,调用它的GetType方法,返回的类型依然是子类类型。
十、子类一定也与父类的类型相兼容:is操作符在判断一个对象与它的任何一个基类型之间的关系时,都返回true。
十一、 当父类函数和子类函数重名时,构造函数和一般函数的执行上的不同:当初始化一个子类时,会自动的按照继承的顺序,从父类向子类逐一执行各类的构造函数。而如果父类和子类都有同一个函数(不是构造函数),则不会自动调用父类的同名函数。
- 《.NET框架程序设计》第六章 通用对象操作
- 《.NET框架程序设计》第六章 通用对象操作
- .Net框架程序设计-读书笔记(第六章 通用对象操作)
- .NET框架程序设计读书笔记(三)--.net框架类库(FCL)和通用类型系统、代码互操作
- 第六章 面向对象面向对象程序设计
- CH6 通用对象操作 .net 复习课
- 第六章 C++面向对象程序设计
- C++面向对象程序设计 第六章 排序
- c++面向对象程序设计第六章作业
- 第六章:面向对象的程序设计
- 第六章 面向对象的程序设计
- 第六章 面向对象的程序设计 JavaScript高级程序设计
- 第六章 面向对象的程序设计(二) JavaScript高级程序设计
- Javascript高级程序设计 第六章 --- 面向对象程序设计
- JavaScript高级程序设计 第六章 面向对象程序设计
- javascript高级程序设计(第六章面向对象的程序设计)
- 第六章 通用算法
- .NET通用开发框架
- WEB"超频"年代
- 《.NET框架程序设计》第一章 Microsoft .NET框架开发平台体系结构
- 《.NET框架程序设计》第四章 类型基础
- 《.NET框架程序设计》第五章 基元类型、引用类型与值类型
- 徐小平:不做人生规划,你离挨饿只有三天
- 《.NET框架程序设计》第六章 通用对象操作
- 《.NET框架程序设计》第七章 类型成员及其访问限定
- 《.NET框架程序设计》第八章 常数与字段
- 《.NET框架程序设计》第九章 方法
- 《.NET框架程序设计》第十章 属性
- 《.NET框架程序设计》第十一章 事件
- 中国未来十大科技突破口
- Posix是什麼
- 《.NET框架程序设计》第十一章 多事件示例:一个男人和三个女人的故事