"对象"之间有什么区别?和#34;抽象数据类型"?你什么时候用的?

时间:2015-01-04 05:24:58

标签: oop object abstract-data-type

上下文

This essay详细描述了“对象”和“抽象数据类型”(ADT)(here是同一作者的较旧解释)

以下是摘录:

  

尽管经过25年的研究,仍然存在   关于 两种形式的数据抽象的广泛混淆,   抽象数据类型和对象。这篇文章试图   解释差异以及差异为何重要。

     

典型的反应是一种变体   “对象是一种抽象数据类型”。   此响应与大多数编程语言一致   教科书。 [...但是]教科书是   错误!对象和抽象数据类型不一样   事情,而且没有一个是另一个的变体。他们是   根本不同,在许多方面互补,   因为一方的优势是另一方的弱点。   大多数现代编程都掩盖了这些问题   语言支持对象和抽象数据   类型,通常将它们组合成一种句法形式。   但句法混合并不能消除基本语义   影响灵活性,可扩展性,安全性和差异性的差异   节目的表现。因此,要使用现代编程   语言有效,人们应该理解   对象和抽象数据之间的根本区别   类型。

问题

使用现代的非学术语言示例是否有简明的解释? (如果没有,如果有人在这里提供一个,或者我有时间可以写自己的答案,那就太好了)

特别感兴趣的是对象和ADT之间的定义和区别,以及编写代码(或设计语言)时的实际意义。

买者

我强烈建议您在评论或回答之前查看链接的文章。

以下是我正在寻找的一种洞察力的例子,也摘自论文:

  

抽象数据类型定义了将给定操作的行为收集在一起的操作。对象以另一种方式组织矩阵,将与给定表示相关联的所有动作收集在一起。在ADT中添加新操作以及使用对象的新表示更容易。 [...]面向对象的程序可以使用继承来添加新操作。

请注意,至少就文章而言,截至2014年1月3日,维基百科错误(或至少不完整)和大多数教科书 。这篇文章是由一位计算机科学教授撰写的,他注意到对这些概念缺乏了解,甚至他的学术同行

0 个答案:

没有答案