第一篇面向对象方法学 2
1面向对象方法的基本概念 2
1.1面向对象的基本概念 2
1.1.1面向对象的含义 2
目录 2
1.1.2对象 3
1.1.3类 4
1.1.4属性 5
1.1.5操作、方法和服务 5
1.1.6消息 6
1.1.7封装 7
1.1.8继承 8
1.1.9多态性 10
1.2.1从结构化方法到面向对象方法 11
1.2面向对象方法概述 11
1.2.2面向对象方法的主要内容 13
1.2.3面向对象方法的优点 16
1.3面向对象的建模方法 16
习题与思考题 18
2面向对象建模 19
2.1对象建模 19
2.1.1对象图 20
2.1.2对象符号 20
2.1.3对象模型的表示 21
2.1.4对象模型的例子 23
2.2动态模型 24
2.2.1事件与状态 24
2.2.3行为 25
2.2.2状态图 25
2.3.1数据流图 26
2.3功能模型 26
2.3.2操作与约束 28
2.4对象模型、动态模型、功能模型之间的关系 29
2.4.1对象模型与动态模型之间的关系 30
2.4.2对象模型与功能模型之间的关系 30
2.4.3动态模型与功能模型之间的关系 30
习题与思考题 31
3统一建模语言(UML) 33
3.1统一建模语言(UML)简介 33
3.1.1 UML的概貌 33
3.1.2 UML语言的特点 34
3.2.1 UML语义 35
3.2.2 UML的表示方法 35
3.2 UML的组成 35
3.1.3 UML的建模步骤 35
3.2.3 UML语言的公共机制 36
3.2.4 UML语言的图符表示 37
3.2.5 UML语言的基本视图 38
3.3 UML的静态建模机制 40
3.3.1建立用例图 40
3.3.2类图和对象图的表示 42
3.3.3包图 44
3.4 UML的动态建模机制 46
3.4.1顺序图 46
3.4.2协作图 47
3.4.3状态图 48
3.4.4活动图 49
3.5系统实现的建模机制 51
3.5.1构件图 51
3.5.2配置图 52
习题与思考题 55
4面向对象的分析与设计 56
4.1面向对象分析 56
4.1.1面向对象分析的活动与过程 57
4.1.2需求陈述 59
4.1.3面向对象分析过程 61
4.2面向对象的设计 70
4.2.1面向对象设计概述 70
4.2.2系统设计 71
4.2.3对象设计 76
4.2.4面向对象设计的一个实例 77
习题与思考题 81
5面向对象实现与测试 82
5.1面向对象设计的实现 82
5.1.1面向对象程序设计的准则 82
5.1.2面向对象语言的主要特性 85
5.1.3面向对象程序语言概述 86
5.2软件测试 88
5.2.1软件测试的基本概念 88
5.2.2软件测试方法 90
5.2.3软件测试的策略 95
5.3面向对象软件的测试 100
5.3.1面向对象的单元测试 100
5.3.2面向对象的集成测试 100
5.4.1测试类的方法 101
5.3.3面向对象的确认测试 101
5.4面向对象的测试用例设计 101
5.4.2基于场景的测试设计 103
习题与思考题 105
第二篇面向对象程序设计 108
6面向对象程序设计语言概述 108
6.1程序设计的基本概念 108
6.1.1面向过程程序设计的基本概念 109
6.1.2面向对象程序设计的基本概念 110
6.2面向对象程序设计方法的优点 110
6.2.1可重用性 110
6.3 C++语言概述 111
6.3.1 C++的发展历史 111
6.2.3可管理性 111
6.2.2可扩充性和可维护性 111
6.3.2 C++程序的结构与特点 113
6.3.3 C++程序的开发过程 114
6.4其他面向对象程序设计语言简介 115
习题与思考题 117
7 C++语言基础 118
7.1 C++程序的结构 118
7.1.1 C++程序的构成 118
7.1.2程序各对象之间的关系 119
7.1.3 C++程序的结构分析 120
7.2 C++的控制流 121
7.2.1 C++的选择结构 121
7.2.2循环控制结构 123
7.3.2新的I/O流 125
7.3 C++在非面向对象方面的一些特性 125
7.3.1注释行 125
7.3.3 new和delete 127
7.3.4灵活的局部变量说明 129
7.3.5作用域运算符——:: 129
7.3.6 const修饰符 130
7.3.7引用 135
7.3.8结构、联合和枚举名都是类型名 139
7.3.9无名联合 139
7.3.10显式类型转换 140
习题与思考题 142
8函数、类与对象 144
8.1 C++的函数 144
8.1.1函数原型 144
8.1.2内联函数 146
8.1.3带有缺省参数的函数 148
8.1.4函数重载 150
8.1.5指向函数的指针 153
8.2定义类 154
8.2.1类的定义 154
8.2.2类的实现 155
8.2.3类的作用域 156
8.2.4创建类的实例对象 157
8.2.5结构和类 157
8.2.6联合和类 159
8.3构造函数与析构函数 160
8.3.1构造函数 160
8.3.2析构函数 162
8.3.3重载构造函数 163
8.3.4拷贝构造函数 164
8.4对象数组与对象指针 166
8.4.1对象数组 166
8.4.2对象指针 168
8.4.3 this指针 171
8.5静态成员 173
8.5.1静态数据成员 173
8.5.2静态成员函数 175
8.6友元 176
8.6.1友元函数 176
8.6.2友元成员 177
8.6.3友元类 178
习题与思考题 179
9.1.1派生类的定义 182
9继承与派生、多态性 182
9.1 派生类 182
9.1.2保护成员的作用 184
9.1.3派生类的构造函数与析构函数 185
9.2继承 188
9.2.1方法的继承 188
9.2.2数据类型转换 191
9.2.3隐藏基类成员 192
9.2.4抽象类 194
9.2.5多重继承 194
9.3多态性与重载 197
9.3.1多态性 197
9.3.2函数重载 197
9.3.3运算符重载 198
9.3.4虚拟函数 201
9.3.5纯虚拟函数 202
9.4应用举例 203
习题与思考题 211
10 C++中的输入/输出操作 213
10.1 C++的流 213
10.1.1 C++的预定义流 213
10.1.2流的插入与提取 214
10.2 C++的流类库 215
10.3格式化I/O 216
10.3.1 ios成员函数的格式化输入/输出控制 216
10.3.2使用操作符进行输入输出的格式控制 220
10.3.3用户自定义的输入输出 222
10.4文件I/O 223
10.4.1文件的打开与关闭 224
10.4.2文件的读/写 226
10.4.3二进制I/O 227
10.4.4随机访问 228
10.4.5 I/O状态 230
10.5应用举例 231
习题与思考题 237
11预处理与异常处理 238
11.1预处理 238
11.1.1预处理标识符声明 238
11.1.2预处理指令 240
11.1.3条件预处理 242
11.2 出错与异常处理 243
11.2.1编程中的错误 244
11.2.2异常及异常对象 245
11.2.3异常处理机制 245
11.2.4异常的产生、捕俘与处理 246
习题与思考题 248
12 Windows应用程序开发简述 250
12.1 Windows应用程序的编程初步 250
12.1.1一个Windows应用程序的组成 251
12.1.2 Visual C++6.0开发环境的使用 252
12.1.3创建一个简单的Windows应用程序 253
12.1.4 AppWizard产生的源代码 255
12.2 Windows应用程序 256
12.2.1文档模板 256
12.2.2图形用户接口(GUI) 257
12.2.3对话框与控件编程 260
12.2.4设备文本与图形处理 261
12.2.5应用编程举例 262
12.3 Windows的消息机制 272
12.3.1消息与消息处理 272
12.3.2消息的种类 272
12.3.3发送消息与接受消息 277
12.3.4 MFC的消息机制 281
12.4多线程编程 284
12.4.1线程的基本概念 284
12.4.2线程之间的数据共享与同步 285
12.4.3 Visual C++中多线程的编程方法 286
12.4.4多线程的编程举例 295
习题与思考题 299
参考文献 300