Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop “与”的区别是什么;“对象”;及;“抽象数据类型”;?你什么时候用哪个? 上下文_Oop_Object_Abstract Data Type - Fatal编程技术网

Oop “与”的区别是什么;“对象”;及;“抽象数据类型”;?你什么时候用哪个? 上下文

Oop “与”的区别是什么;“对象”;及;“抽象数据类型”;?你什么时候用哪个? 上下文,oop,object,abstract-data-type,Oop,Object,Abstract Data Type,详细描述了“对象”和“抽象数据类型”(ADT)(这是同一作者的老解释) 以下是摘录: 尽管经过了25年的研究,仍然有 关于两种数据抽象形式的广泛混淆, 抽象数据类型和对象。本文试图 解释差异以及差异的重要性 典型的反应是 “对象是一种抽象数据类型”。 此响应与大多数编程语言一致 教科书。[…但是]教科书是 错了!对象和抽象数据类型不同 两者都不是另一个的变体。他们是 从根本上讲是不同的,在许多方面是互补的, 因为一个的优点是另一个的缺点。 大多数现代编程 语言支持对象和抽象数据 类型,通常将它们

详细描述了“对象”和“抽象数据类型”(ADT)(这是同一作者的老解释)

以下是摘录:

尽管经过了25年的研究,仍然有 关于两种数据抽象形式的广泛混淆, 抽象数据类型和对象。本文试图 解释差异以及差异的重要性

典型的反应是 “对象是一种抽象数据类型”。 此响应与大多数编程语言一致 教科书。[…但是]教科书是 错了!对象和抽象数据类型不同 两者都不是另一个的变体。他们是 从根本上讲是不同的,在许多方面是互补的, 因为一个的优点是另一个的缺点。 大多数现代编程 语言支持对象和抽象数据 类型,通常将它们混合成一种语法形式。 但句法混合并不能抹去基本语义 影响灵活性、可扩展性、安全性和可靠性的差异 程序的性能。因此,使用现代编程 有效地使用语言,一个人应该理解 对象和抽象数据之间的根本区别 类型

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

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

警告 我强烈建议在评论或回答之前先看相关文章

下面是一个我正在寻找的洞察力类型的例子,也是从文章中摘录的:

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


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

:本质上,它们是表示数学模型的蓝图(理论上)。它们为特定的数据类型提供值和函数。p、 这可能过于宽泛和固执己见。我认为这应该是早期课堂上教授的一个基本概念……但我在网上找了几个小时后,还没有看到一个好的、简洁的解释。有关一些细微差别,请参见链接的文章。维基百科的解释甚至没有承认对象是一种数据抽象形式。我主要感兴趣的是有一个可靠的资源,我可以向人们推荐。作为参考,我上过很多编程课,也教过很多编程课,但还没有看到对此进行明确的讨论。这个问题并不“太宽泛”,只是有些人觉得不舒服。最流行的面向对象语言(Java等)既不提供纯ADT,也不提供纯对象,而是两者的混合,这无助于解决问题。“边做边学”的程序员最终无法理解这种区别,因为他们从来没有遇到过这种区别。@gnat我想你指的是一条不再存在的评论(尽管我没有删除)。此外,一条评论(如果它真的存在的话)是在两年前发布的,当时该网站还没有重新命名(包括范围和目标受众描述的改变)。所以我希望你只是在开玩笑^