书籍详情

面向对象的理论与C++实践

面向对象的理论与C++实践

作者:王燕编著

出版社:清华大学出版社

出版时间:1997-02-01

ISBN:9787302022695

定价:¥26.00

购买这本书可以去
内容简介
  p;本书主要介绍面向对象的理论及如何用C十十这个语言工具来实现面向对象编程。本书的特点是理论与实践紧密结合,使读者在理解理论的同时,掌握如何实际实现。本书共分为两篇:理论篇和实践篇。理论篇共六章,主要介绍面向对象的理论。实践篇共八章,主要介绍如何用C十十实现面向对象的理论,本篇为各章设计了一个贯穿始终的实例将全书内容联系了起来。另外还简单介绍了Windows应用程序的面向对象实现。本书可作为计算机专业的高年级本科生或与计算机相关专业的研究生的教材,还可以作为已经掌握了C语言的软件设计人员学习面向对象编程的参考书。片断:bsp;“面向对象”是软件程序设计中的一种新思想,由于这种新思想的引入,使我们的程序设计能更加贴近现实,并且花费更小的精力。本章主要介绍“面向对象”思想的由来和面向对象的程序设计方法1.1面向对象思想的由来“对象”一词在现实生活中经常会遇到,它表示现实世界中的某个具体的事物。社会的不断进步和计算机科学的不断发展是相互促进的,一方面计算机科学的发展推动了社会的发展,计算机的广泛应用给整个社会生产力带来了勃勃生机;另一方面社会的发展,又给计算机科学提出了许多新的要求,计算机科学只有不断地进行自身提高和自身完善,才能适应不断进步的社会生产力的需要。随着计算机的普及应用,人们越来越希望能更直接与计算机进行交互,而不需要经过专门学习和长时间训练后才能使用它。这一强烈愿望使软件设计人员的负担越来越重,也为计算机领域自身的发展提出了新的要求。利用传统的程序设计思想无法满足这一要求,人们就开始寻求一种更能反映人类解决问题的自然方法,“面向对象”技术就是在这样的情况下产生的。“面向对象”技术追求的是软件系统对现实世界的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间。它希望用户用最小的气力,最大程度地利用软件系统来解决问题。现实世界中的事物可分为两大部分,即物质和意识,物质表达的是具体的事物;意识描述的是某一个抽象的概念。例如“自行车”和“这辆白色的自行车”,“这辆白色的自行车”是物质,它是具体的客观存在;“自行车”是意识,它是一个抽象的概念,是对客观存在的事物的一种概括。这些现实世界中的事物可直接映射到面向对象系统的解空间,现实世界中的物质可对应于面向对象系统中的“对象”,现实世界中的意识可对应面向对象系统中的抽象概念——类。自行车在面向对象系统中可用自行车类来表达,一辆白色的自行车在面向对象系统中是一个具体的对象,是自行车类的一个实例。1.2面向对象程序设计面向对象程序设计是软件系统设计与实现的新方法,这种新方法是通过增加软件可扩充性和可重用性,来改善并提高程序员的生产能力,并控制维护软件的复杂性和软件维护的开销。到底什么是面向对象程序设计?在我们对它给出解释之前,需要首先讨论一下结构化程序设计。1.什么是结构化程序设计(StructureProgramming)结构化程序设计是60年代诞生的,在70年代到80年代已遍及全球,成为所有软件开发设计领域及每个程序员都采用的程序设计方法,它的产生和发展形成了现代软件工程的基础。结构化程序设计的设计思路是:自顶向下、逐步求精;其程序结构是按功能划分若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的手段,从而有效地将一个较复杂的程序系统的设计任务分成许多易于控制和处理的子任务,这些子任务都是可独立编程的子程序模块。这些子程序中的每一个都有一个清晰的界面,使用起来非常方便。结构化程序设计方法虽然具有很多的优点,但它仍是一种面向数据/过程的设计方法,它把数据和过程分离为相互独立的实体,程序员在编程时必须时刻考虑所要处理的数据的格式。对于不同的数据格式即使要做同样的处理或对相同的数据格式要做不同的处理都需编写不同的程序。因此结构化程序的可重用性不好。另一方面,当数据和过程相互独立时,总存在着用错误的数据调用正确的程序模块或用正确的数据调用了错误的程序模块的可能性。因此,要使数据与程序始终保持相容,已经成为程序员的一个沉重负担。上述这些问题,结构化程序设计方法本身是解决不了的,它需要借助于我们下面要讨论的面向对象程序设计方法给予解决。2.什么是面向对象程序设计(ObjectOrientedProgramming——简称OOP)面向对象程序设计既吸取了结构化程序设计的一切优点,又考虑了现实世界与面向对象解空间的映射关系,它所追求的目标是将现实世界的问题求解尽可能简单化。面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型——类,并且考虑不同对象之间的联系和对象类的重用性。例如我们可以将各种各样的自行车抽象成一个自行车类,它所包含的数据内容有架子尺寸、车轮尺寸、颜色和原材料等,它所具有的操作有转弯、移动和修理等。每一辆具体的自行车就是属于自行车类的一个对象
作者简介
暂缺《面向对象的理论与C++实践》作者简介
目录
     目录
    理论篇
   第1章 绪论
    1.1 面向对象思想的由来
    1.2 面向对象程序设计
    1.3 面向对象程序设计语言
    1.4 面向对象方法在大型程序设计中的应用
    1.5 面向对象程序设计范型
    1.6 面向对象方法的思维科学基础
    1.6.1 建立模型
    1.6.2 抽象思维的方法
    练习题
   第2章 面向对象的基本概念
    2.1 对象
    2.1.1 对象的定义
    2.1.2 对象的划分
    2.1.3 对象的状态
    2.1.4 对象的特性
    2.2 消息
    2.2.1 什么是消息
    2.2.2 公有消息和私有消息
    2.2.3 特定于对象的消息
    2.2.4 消息序列
    2.3 类
    2.3.1 类的定义
    2.3.2 类与实例的关系
    2.3.3 类的确定与描述
    练习题
   第3章 面向对象系统的特性
    3.1 封装性
    3.1.1 什么是封装
    3.1.2 什么是协议
    3.1.3 面向对象系统的封装性
    3.2 继承性
    3.2.1 继承的引入
    3.2.2 继承的分类
    3.2.3 继承与封装的关系
    3.2.4 继承与委托的关系
    3.2.5 类的层次
    3.2.6 单继承与多继承
    3.2.7 面向对象系统的继承性
    3.3 多态性
    3.3.1 重载的概念
    3.3.2 虚函数的概念
    3.3.3 抽象类的概念
    3.3.4 面向对象系统的多态性
    练习题
   第4章 面向对象分析
    4.1 概念模型
    4.1.1 为什么要建立概念模型
    4.1.2 概念间的关系
    4.1.3 信息系统的概念模型
    4.2 用面向对象方法建立概念模型
    4.2.1 识别对象和类
    4.2.2 对象间的通讯
    4.2.3 对象关系图示——类图
    4.2.4 类描述语言
    练习题
   第5章 面向对象设计技术
    5.1 面向对象设计软件生命周期
    5.1.1 需求分析阶段
    5.1.2 设计阶段
    5.1.3 演化阶段
    5.1.4 维护阶段
    5.2 面向对象设计的方法
    练习题
   第6章 面向对象的数据库概论
    6.1 什么是面向对象的数据库
    6.2 面向对象的数据库系统的基本性质
    6.2.1 必备类性质
    6.2.2 可选类性质
    6.3 面向对象的数据模型
    6.3.1 类
    6.3.2 对象和对象标识
    6.3.3 方法和消息传递
    6.3.4 类层次结构和类组合结构
    练习题
    实践篇
   第7章 类的定义及其类对象的封装性
    7.1 C十十类的构成
    7.1.1 私有成员和公有成员
    7.1.2 类的构造
    7.2 成员函数的定义
    7.3 类与对象
    7.3.1 类与对象的关系
    7.3.2 类的使用
    7.3.3 名字解析
    7.4 构造函数与析构函数
    7.4.1 构造函数
    7.4.2 参数化的构造函数
    7.4.3 缺省参数的构造函数
    7.4.4 多构造函数
    7.4.5 拷贝构造函数
    7.4.6 动态存储
    7.4.7 析构函数
    7.5 静态成员
    7.5.1 静态数据成员
    7.5.2 静态成员函数
    7.6 类对象作为成员
    7.7 对象数组
    7.8 C十+中的封装性
    7.8.1 对象的封装
    7.8.2 程序的模块化
    7.9 Windows类库中的类框架
    7.10 实例分析之一
    练习题
   第8章 友元
    8.1 友元的说明和定义
    8.2 友元函数
    8.3 友元成员
    8.4 友元类
    8.5 友元举例
    8.6 实例分析之二
    练习题
   第9章 重载
    9.1 函数重载
    9.1.1 构造函数重载
    9.1.2 类成员函数重载
    9.1.3 类以外的一般函数重载
    9.2 运算符重载
    9.2.1 用成员函数重载运算符
    9.2.2 用友元重载运算符
    9.2.3 十十和--的重载
    9.2.4 运算符[]和()的重载
    9.2.5 new和delete的重载
    9.2.6 赋值运算符的重载
    9.3 类型转换
    9.3.1 一般数据类型间的转换
    9.3.2 通过构造函数进行类类型转换
    9.3.3 类类型转换函数
    9.3.4 类型转换举例
    9.4 实例分析之三
    练习题
   第10章 引用
    10.1 引用的概念
    10.2 引用参数
    10.3 引用返回值
    10.4 引用举例
    10.5 实例分析之四
    练习题
   第11章 继承与类的派生
    11.1 派生类的概念
    11.1.1 为什么使用继承
    11.1.2 派生类的定义
    11.1.3 派生类对基类成员的访问权
    11.1.4 派生类的构造函数和析构函数
    11.2 派生类对基类成员的继承
    11.2.1 如何访问基类私有成员
    11.2.2 通过访问声明调整访问域
    11.3 多继承
    11.3.1 多继承的概念
    11.3.2 多继承的定义
    11.3.3 多继承的构造函数与析构函数
    11.3.4 虚基类
    11.4 Windows应用程序中继承性的使用
    11.4.1 ObjectWindows类库中的继承性
    11.4.2 Windows应用程序的建立
    11.5 实例分析之五
    练习题
   第12章 多态性与虚函数
    12.1 多态性在C十十中的体现
    12.1.1 编译时的多态性
    12.1.2 运行时的多态性
    12.2 虚函数
    12.2.1 对象指针
    12.2.2 为什么要引入虚函数
    12.2.3 虚函数的定义及使用
    12.2.4 虚函数举例
    12.3 抽象类
    12.3.1 纯虚函数与抽象类
    12.3.2 纯虚函数多态性的体现
    12.4 Windows应用程序中多态性的使用
    12.5 实例分析之六
    练习题
   第13章 类属
    13.1 类属
    13.1.1 为什么要引入类属编程
    13.1.2 类属表
    13.1.3 从类属表中导出栈和队列
    13.2 模板
    13.2.1 模板的概念
    13.2.2 函数模板与模板函数
    13.2.3 类模板与模板类
    13.3 利用模板工具实现类属机制实例
    13.3.1 栈
    13.3.2 队列
    13.3.3 数组
    13.3.4 稀疏矩阵
    13.3.5 图
    练习题
   第14章 C十十的I/O流库
    14.1 C十十流库结构
    14.1.1 流库的概念
    14.1.2 streambuf类
    14.1.3 ios类
    14.2 一般的输入/输出
    14.2.1 输入/输出类定义
    14.2.2 输入/输出运算符的使用
    14.2.3 格式控制的输入/输出
    14.3 用户自定义类型的输入/输出
    14.3.1 重载输入运算符“》”
    14.3.2 重载输出运算符“《”
    14.3.3 重载运算符“《”,“》”应用举例
    14.4 文件的输入/输出
    14.4.1 文件的打开与关闭
    14.4.2 文件的读写
    14.5 实例分析之七
    14.6 实例综述
    练习题
   
猜您喜欢

读书导航