现在计算机所采用的一些概念可以合理地追溯到布尔(George Boole)和弗雷格包括罗素等人的数学探索。罗素有一个说法很有代表性:
值得注意的是,在弗雷格以前,大家所提出的一切数的定义都含有基本的逻辑错误。照惯例总是把“数”和“多元”当成一回事。但是,“数”的具体实例是一个特指的数,譬如说3,而3的具体实例则是一个特指的三元组。三元组是一个多元,但是一切三元组所成的类——弗雷格认为那就是3这个数本身——是由一些多元组成的一个多元,而以3为其一实例的一般的数,则是由一些多元组成的一些多元所组成的一个多元。由于把这个多元与一个已知的三元组的简单多元混淆起来,犯了这种基本的语法错误,结果弗雷格以前的全部数的哲学成了连篇废话,是最严格意义上的“废话”。
——《西方哲学史》下册,390-391页,原著858-859页。
前面罗素所说的数,比如整数,很明显相当于计算机中的基本数据类型。
那么面向对象编程中的类和基本数据类型是什么关系呢?
至少有这么几个层次的关系:
1、基本数据类型;这是基本层次,不用多说。
2、自定义数据类型:是基本数据类型的扩展。
比如我自定义一个类型,不过是用c#写的,当然我这个不能说是在基本数据类型基础上写的,而是在一些现成的类型基础上,
class soob : Object
{
public ISharedObject soso ;
public string valu= "";
}
3、抽象数据类型:是包含了操作定义的用户自定义数据类型,大约在1980年代产生。
class soob : Object
{
public ISharedObject soso ;
public string valu= "";
public soob(object V, string VN) { this.soso = V; this.atratr = VN; }//可以定义一个函数或过程
}
4、类实际上很多方面是抽象数据类型的描述,它们的实例称为对象。类是抽象数据类型的扩展,类具有继承性,封装性,类可以只由过程定义构成。
个人思考的笔记,仅供参考。
参考文献:Brookshear《计算机科学概论》第9版,252-256.