浅度和深度复制-机器人学导论第三版课后习题答案

时间:2021-07-09 11:45:46
【文件属性】:
文件名称:浅度和深度复制-机器人学导论第三版课后习题答案
文件大小:14.06MB
文件格式:PDF
更新时间:2021-07-09 11:45:46
c#入门经典 第五版 高清 中文 文字版 9.8 浅度和深度复制 从一个变量到另一个变量按值复制对象,而不是按引用复制对象(即以与结构相同的方式复制) 可能非常复杂。因为一个对象可能包含许多其他对象的引用,例如,字段成员等,这将涉及许多繁 琐的操作。把每个成员从一个对象复制到另一个对象中可能不会成功,因为其中一些成员可能是引 用类型。 .NET Framework 考虑了这个问题。简单地按照成员复制对象可以通过派生于 System.Object 的 MemberwiseClone()方法来完成,这是一个受保护的方法,但很容易在对象上定义一个调用该方法的 公共方法。这个方法提供的复制功能称为浅度复制(shallow copy),因为它没有考虑引用类型成员。 因此,新对象中的引用成员就会指向与源对象中相同成员的对象,在许多情况下这并不理想。如果 要创建成员的新实例(复制值,而不复制引用),此时需要使用深度复制(deep copy)。 可以实现一个 ICloneable 接口,以标准的方式来进行。如果使用这个接口,就必须实现它包含 的 Clone()方法。这个方法返回一个类型为 System.Object 的值. 我们可以采用各种处理方式,执行所 选的任何一个方法体得到这个对象。如果愿意,就可以进行深度复制(但执行过程不是必选的,所以 可以按照需要执行浅度复制)。详见第 11 章。 9.9 小结 本章讨论了如何在 C#中定义类和接口,把第 8 章的理论以更具体的方式表达出来。我们论述了 基本声明所需要的 C#语法和可以使用的可访问关键字,继承接口和其他类的方式,如何定义抽象和 密封类以控制这种继承,以及如何定义构造函数和析构函数。 本章介绍了每 System.Object,它是我们所定义的所有类的基类。这个类提供了几个方法,其中 一些是虚拟的,所以可以重写它们的实现代码。这个类还可以把任何对象实例当作这个类的实例, 对任意对象应用多态性。 我们还研究了 VS 和 VCE 为 OOP 开发提供的一些工具,包括“类视图”(Class View)窗口、“对 象浏览器”(Object Browser)窗口,以及给项目添加新类的快速方法。在扩展“多文件”这个概念时, 我们还介绍了如何创建程序集,程序集虽然不能运行,但它保护可以在其他顶目中使用的类定义。 接着深入探讨了抽象类和接口,理解它们的共同和不同之处,以及使用它们的场合。 后,讨论了引用类型和值类型,较详细地介绍了结构(对象的值类型)。这引出了浅度复制和 深度复制对象的讨论,该主题将在本书的后面再次讨论。 第 10 章将介绍如何定义类成员,如属性和方法,以便在 C#中利用 OOP 创建真正的应用程序。 203

网友评论