对象是数据结构吗?

时间:2016-02-03 13:51:04

标签: object data-structures

我知道数组,链接列表等数据结构......但是对象呢?

比如说,如果我创建一个对象说员工,它会存储并跟踪员工姓名,工资,电话号码等等。

2 个答案:

答案 0 :(得分:1)

这是一个真正的语义问题,我希望它可以被论证。 创建对象时,您要告诉编译器或解释器将一组信息存储在一起。通常,解释器/编译器将使用某种类型的数据结构来存储该信息(例如,Python使用哈希表)。

如果我在十六进制转储中指出它,我可能会将该数据结构称为对象,但这只是因为说'代表该对象的字节'有点不方便。

你可以(也许有人)编写一个编译器,在一个数据结构中存储许多对象。在这种情况下,对象和数据结构之间不会有一对一的映射。所以出于这个原因 - 我要说不,一个对象不是数据结构,但它通常存储在一个中。

答案 1 :(得分:0)

有趣的是,在the OOP paradigm 开始流行之前,像C这样的语言使用了struct的(结构)。其中,在C中只是一个具有命名偏移(成员)的连续虚拟内存块。虽然unions等等事情确实变得更加复杂。

但基本上结构,正如@James所指出的那样,正是这样 - 一些相关的事物的集合或分组以程序员的方式(或者疯狂的科学家)感觉是合乎逻辑的。

在现代编程词典中,使用Java,C#等语言 - 您的对象通常代表一个 现实事物,例如客户,订单, &LT;在这里插入过度使用的对象示例&gt;等。虽然您的数据结构(通常是我提到的语言库中的集合)代表 <的包含 em> multiple “Objects”。

严格来说,(并且只是为了让每个人感到困惑),Java和C#等语言中的数据结构对象(< em> ie 它们被引用传递,可以有它们调用的方法等。)

在更经典(也许更多CS派生)的意义上,“数据结构”是行为的集合(通常是算法),用于管理存储的内存 数据,而“对象” 该数据