第1章 绪论 1
1.1 面向对象简述 1
1.1.1 对象定义 1
1.1.2 面向对象 2
1.1.3 面向对象范型 5
1.2 面向对象程序设计范型 7
1.2.1 软件工程 7
1.2.2 面向对象理论及历史 8
1.2.3 面向对象编程 14
习题一 16
第2章 面向对象分析 17
2.1 面向对象分析中的术语 17
2.1.1 抽象 17
2.1.2 对象 19
2.1.3 类 19
2.1.4 封装 20
2.1.5 继承 20
2.1.6 消息 21
2.1.7 结构与联系 21
2.1.8 多态性 22
2.1.9 主动对象 23
2.2 各种分析方法 23
2.2.1 功能分解法 23
2.2.2 数据流法 24
2.2.3 信息建模法 24
2.2.4 面向对象法 25
2.3 支持软件复用 25
2.3.1 贯穿软件生命周期全过程的一致性 25
2.3.2 实用性 26
2.3.3 有利于用户参与 26
2.4 面向对象分析设计的主要过程 26
2.4.1 发现对象 26
2.4.2 定义属性 27
2.4.3 定义行为 28
2.4.4 定义结构 28
2.4.5 细分题目 31
2.5 具有支持 OO 特征的建模语言 33
2.5.1 OOA 建模语言的评价 33
2.5.2 OOA 模型的一般机制 33
2.5.3 OOA 视图和提交 34
2.6 面向对象设计初步 34
2.6.1 OOD 模型 34
2.6.2 优良的 OOD 35
2.6.3 OOD 中对象标识设计 35
2.6.4 复杂对象的构造设计 35
习题二 36
第3章 面向对象程序设计语言基础 37
3.1 面向对象程序设计语言 37
3.1.1 程序 37
3.1.2 语言及其分类 37
3.1.3 C++是面向对象程序设计语言 38
3.2 C++语言基础 38
3.2.1 C++的发展史 38
3.2.2 C++基础语法 39
3.2.3 常数 41
3.2.4 输入/输出 44
3.2.5 表达式和语句 45
3.2.6 函数 50
3.2.7 函数的重载 52
3.2.8 C++中的类 52
3.2.9 写 C++类代码的相关基础常识 60
3.2.10 继承 72
3.2.11 运算符重载 87
3.2.12 虚函数 95
3.2.13 模板 99
3.3 Java 的基础知识 102
3.3.1 Java 的发展史 102
3.3.2 Java 的基本语法 102
3.3.3 运算符 105
3.3.4 表达式 108
3.3.5 流程控制语句 110
3.3.6 数组和字符串 110
3.3.7 Java 环境的一些特征 112
习题三 113
第4章 发现对象及其属性、行为定义 117
4.1 怎样发现对象 117
4.1.1 从问题领域发现对象 117
4.1.2 从系统责任发现对象 118
4.1.3 对象的审查和筛选 118
4.2 定义属性 121
4.2.1 发现对象的属性 121
4.2.2 按一般常识确定属性 121
4.2.3 本问题领域中的属性 121
4.2.4 结合系统软件和将开发的软件确定属性 121
4.2.5 与其他对象相联系的属性 121
4.3 确定行为 122
4.3.1 对象的状态和状态转移图 122
4.3.2 根据一般常识确定行为 124
4.3.3 根据状态转移图确定行为 125
4.4 C++编程 125
4.5 Java 编程 127
4.6 主动对象识别及其程序设计 129
4.6.1 主动对象识别 129
4.6.2 主动对象程序设计基础 131
4.6.3 主动对象程序设计 133
习题四 137
第5章 对象系统设计步骤、对象关系及其实现 139
5.1 面向对象程序设计步骤 139
5.1.1 构造一个解题模型 140
5.1.2 标识对象 140
5.1.3 标识对象间的关系 141
5.1.4 建立对象的型构 141
5.1.5 实现各对象 141
5.2 对象之间、类之间的关系 142
5.2.1 IS-A 关系 142
5.2.2 HAS-A 关系 144
5.2.3 USES-A 关系 146
5.2.4 IS-LIKE-A 关系 146
5.2.5 CREATES-A 关系 146
5.3 面向对象设计和开发示例 147
5.3.1 构造一个解题模型 147
5.3.2 标识对象 147
5.3.3 标识对象间的关系 148
5.3.4 建立对象的型构 149
5.3.5 实现各对象 152
习题五 166
第6章 C++标准模块库(STL)及其程序设计 167
6.1 STL 简介 167
6.1.1 初识 STL 167
6.1.2 STL 和 HP 公司 167
6.1.3 大众化的 STL 167
6.1.4 STL 总览 168
6.1.5 STL 基本组件 168
6.1.6 其他 STL 组件 168
6.1.7 完整的 STL 程序包 168
6.2 vectors 169
6.2.1 vector 程序实例 169
6.2.2 初始化 171
6.2.3 vector 容器的方法 172
6.2.4 对 vector 可执行的其他操作 173
6.3 STL 与模板 173
6.3.1 template 关键字 174
6.3.2 模板语法 174
6.3.3 模板函数 175
6.3.4 模板类 175
6.3.5 STL 与模板的比较 176
6.4 迭代器 176
6.4.1 迭代器的使用 177
6.4.2 迭代器类型 180
6.5 算法 182
6.5.1 算法的定义 182
6.5.2 算法的使用 184
6.5.3 泛型算法的使用 193
6.5.4 函数对象 193
6.6 容器 198
6.6.1 容器的定义 198
6.6.2 适配器的定义 223
6.7 总结 225
习题六 226
第7章 标准建模语言及其应用 227
7.1 标准建模语言(UML)概述 227
7.1.1 UML 语言的特征 228
7.1.2 UML 语言的目标 228
7.1.3 UML 语言 228
7.2 UML 的模型、视图、图与系统架构建模 229
7.2.1 视图 229
7.2.2 图 230
7.2.3 UML 中的模型元素 230
7.3 用例建模 233
7.3.1 用例图 233
7.3.2 确定行为者 234
7.3.3 确定用例 235
7.3.4 用例之间的关系 236
7.4 类和对象建模 236
7.4.1 类图和对象图 236
7.4.2 确定类 237
7.4.3 UML 中类之间的关系 239
7.4.4 包 244
7.4.5 模板 244
7.4.6 一个类图的实例 245
7.5 动态建模 246
7.5.1 消息 246
7.5.2 状态图 246
7.5.3 时序图 253
7.5.4 协作图 254
7.5.5 活动图 256
7.6 物理体系结构建模 258
7.6.1 逻辑体系结构和物理体系结构 258
7.6.2 构件图 260
7.6.3 部署图 261
7.7 使用 UML 的过程 263
7.7.1 UML 过程的基础 263
7.7.2 面向对象方法的一般过程 264
7.7.3 Rational Objectory 过程 266
习题七 267
参考文献 268