3

可能的重复:
为什么 Java 中的类是“类”?

我正在考虑 Haskell 中的类型类,它允许您根据可以对它们执行的操作将类型分成不同的组。但是为什么类在 C++ 中被称为类呢?他们最初的目的是分类什么?

4

6 回答 6

10

因为它们在 Simula 中被称为“类”。消息来源表明,Simula 受到Algol 中“记录类”(即具有相关类型信息的结构化数据)提案的影响。大多数其他语言(直接或间接)从 Simula 派生其 OO 术语。

于 2012-09-11T03:46:06.313 回答
5

对现实世界的实体(对象)进行分类。

于 2012-09-11T03:44:12.560 回答
3

C++ 中的类旨在对对象进行分类。

于 2012-09-11T03:41:57.360 回答
3

他们对物体进行分类,因此得名:)

于 2012-09-11T03:42:18.843 回答
2

实际上,不常见的用途是haskell中的一种。在大多数 OO 语言中,用于指代定义一类对象行为的类型。例如,Car是一类有很多实例的对象,我的车,你的车,别人的车。在 Haskell 中,该术语在元语言级别用于指代类型的类,而不是对象的类。

于 2012-09-11T03:57:07.923 回答
0

在面向对象编程中,您拥有具有状态并支持某些操作的对象。对于一些不同的对象(例如,在金融程序中表示银行账户的对象,与在赛车模拟器中表示汽车的对象),状态和内容是完全不同的。所以我们不能以同样的方式对待所有的对象。

一个代表一堆工作相似的对象。如果你知道一个对象属于某个类,那么你就知道可以用它做一些事情。代表银行帐户的对象可能支持诸如deposit, withdraw, getBalance,之类的操作getAccountHolder

谈论“支持deposit, withdraw, getBalance, 和getAccountHolder操作的对象类”或“支持accelerate, getSpeed, 和steer方法的对象类”只是“类”这个词的正常使用(并且与“分类”有关, 基本上只是“投入课堂”的意思;“课堂”这个词在一群学生中是完全不同的)。

显然,您很快就想命名特定的类,这样您就可以说BankAccountor RacingCar,而不是“支持...的对象类”。

所以一堂课就是这样;一个“事物”,它定义了作为类实例的对象的共同点。

于 2012-09-11T04:00:15.470 回答