Object 对象是数据结构吗?

Object 对象是数据结构吗?,object,data-structures,Object,Data Structures,我知道数组、链表等都是数据结构……但对象呢 比如说,如果我创建一个对象,比如employee,它存储并跟踪员工的姓名、薪水、电话号码……等等。这实际上是一个语义问题,我希望这两种方式都有争议。 创建对象时,您告诉编译器或解释器将一组信息存储在一起。通常,解释器/编译器将使用某种类型的数据结构来存储该信息(例如Python使用哈希表) 如果我在十六进制转储中指出该数据结构,我可能会将其称为对象,但这只是因为说“表示对象的字节”有点不方便 您可以(也许有人已经)编写一个编译器,在一个数据结构中存储多

我知道数组、链表等都是数据结构……但对象呢


比如说,如果我创建一个对象,比如employee,它存储并跟踪员工的姓名、薪水、电话号码……等等。

这实际上是一个语义问题,我希望这两种方式都有争议。 创建对象时,您告诉编译器或解释器将一组信息存储在一起。通常,解释器/编译器将使用某种类型的数据结构来存储该信息(例如Python使用哈希表)

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

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

有趣的是,在流行之前,像C这样的语言使用的是结构。在C语言中,它只是一个具有命名偏移量(成员)的连续虚拟内存块。尽管这确实会变得更复杂,比如工会等

但本质上,正如所指出的,一个结构正是这样的——一些相关事物的集合或分组,以程序员(或疯狂的科学家)认为的方式,是合乎逻辑的

在现代编程词典中,对于Java、C#等语言,您的对象通常表示一个真实世界的事物,例如客户、订单、等,而您的数据结构(通常是我提到的语言库中的集合)表示多个对象的包含

然而,严格地说(只是让大家感到困惑),Java和C#等语言中的数据结构是对象!(即,它们被引用并被传递,可以对它们调用方法等)


从更经典(或许更衍生)的意义上说,“数据结构”是行为(通常是算法)的集合,用于管理存储数据的内存,而“对象”就是这些数据。

这主要取决于您所说的特定语言及其对数据的定义“反对”“是的。如果它意味着一个键值关联,就像它经常发生的那样,那么是的。我很确定你可以自己思考这个问题。。。如果你的院子里有一堆草坪设备,你决定建造一个用来存放它们的棚子,那是一个结构吗?为什么构建一个对象来收集所有员工信息和构建那个小屋有什么不同呢?JSON是一个对象,可以说它是一种数据结构。