§
1
在一些面向对象程序设计语言中,系统提供给程序员使用的基本数据类型也是以类的形式提供的,然而在C++这类混合型面向对象程序设计语言中,基本数据类型是独立处理的。虽然从形式上§
1
在一些面向对象程序设计语言中,系统提供给程序员使用的基本数据类型也是以类的形式提供的,然而在C++这类混合型面向对象程序设计语言中,基本数据类型是独立处理的。虽然从形式上看,由int声明的变量i与由类类型CLOCK声明对象cima有所不同,但从本质上来看,基本数据类型声明的变量与对象是相同的,我们可以将这些变量也理解为对象,其属性即是变量的值,其操作即是C++提供的基本操作。
2
类是构造面向对象程序的基本单位,面向对象程序设计的主要任务就是设计类并利用类组装程序。一个面向对象程序是由一组相关的类组成的,在C++语言中还必须提供一个主函数main( ).
类是关于一组结构与行为相似的对象的共同特性的描述。然而类与对象是两个不同的概念:类是面向对象程序静态文本中的概念,而对象则是面向对象程序动态运行时的概念。
3
类是一组相似对象的抽象描述,尽管各个对象内部状态是不同的,但类摒弃了这些差异,抽取出这些对象的共性组成一个共同的概念。与此类似,在类之上还有一个抽象描述,我们称之为抽象数据类型(Abstract Data Type,简称ADT),ADT是一组相似类的抽象描述,而是一个类是ADT的具体实现。
4
ADT只是一个数学意义上的形式系统,它通过定义数据结构上允许的操作的性质来定义一种数据类型。其“抽象”表现在两方面:一是不给出数据的具体表示而只给出值域,二是不给出操作的实现细节而只给出其性质(操作必须满足的前置断言和公理)。
类作为ADT的一个实现,其“实现”的含义有两个方面:一是给出了具体的数据结构表示,二是用面向对象程序设计语言给出了完成操作的语句序列。
一个类可以声明多个对象,一个ADT也允许有多个类来实现它。
5
ADT为描述现实世界或思维世界中的实体提供了一种理想的工具:不是从对象的物理表示来定义一个对象,而是从它的行为来定义。即这个对象提供给其他对象的服务。从这个意义上,ADT可以作为类界面的一种描述。
6
我们在设计一个类的界面时应该至少从三方面作评价:
类界面应该具有完备性
类界面应该是无二义的
类界面应该是无冗余的
7
类作为软件重用的基本构件(component)需要在不同环境下重复使用,但并不是每次使用时一个类都是百分之百合用,在新的环境下我们可能需要为原有的类增加一些 新属性或新操作。这地当然可以从原有类
5.6 类与对象的进一步讨论 来自淘豆网m.daumloan.com转载请标明出处.