很久以前,计算机科学家就认识到了数据和操作之间的这种紧密关系。这种关系催生了抽象数据类型(abstract data type,ADT)这一思想。抽象数据类型是由一个表示数据项的抽象对象集合和一些列对这些对象所做的操作构成的。(……)虽然抽象数据类型可以用Pascal这样传统的面向过程语言来实现,但用C++和Java这样的面向对象语言来实现要更为方便,这些语言用类(class)来支持抽象数据类型。
——《算法设计与分析基础》(第三版)
感悟:这是我个人目前为止看到对类(class)最为明确的定义,类(class)是一种抽象的数据类型(abstract data type,ADT),它表示了一个抽象对象的集合,比如人类(People)这个集合涵盖了人应具备的一些属性(field)和行为(method),进而我们可以用抽象来具体化到一个对象,同时这个对象也可归纳于人类(People)这个集合。在Java中类(class)本身也属于一个集合——Class类,用一种思想解释其自身,万物皆对象。