《面向对象技术与工具》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:陈文宇,白忠建,吴劲等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121070518
  • 页数:511 页
图书介绍:本书内容涉及面向对象的思想、方法和技术,以及两种著名的面向对象的程序设计语言——C语言和Java语言。全书分为上、下篇。上篇介绍面向对象技术,包括:软件工程概述,软件维护,软件工具与集成化环境,面向对象方法,UML统一建模语言,面向对象的测试;下篇介绍面向对象程序设计语言,包括:面向对象语言的核心概念,面向对象程序语言C++实现数据封装,面向对象程序语言C++实现多态性,面向对象程序语言C++实现与继承性,面向对象程序设计Java语言基础,面向对象Java程序设计技术。本书是在汲取了国内外有关教材的精华,并结合编者多年教学的基础上编写的,内容注重科学性、先进性,强调实用性。

第1章 软件工程概述 1

1.1软件工程的产生和发展 1

1.1.1软件工程的发展过程 1

1.1.2软件危机 2

1.1.3软件工程研究的内容 3

1.2软件与软件工程过程 4

1.2.1软件的概念和特点 4

1.2.2软件工程过程 6

1.3软件过程模型 6

1.3.1瀑布模型 7

1.3.2增量模型 7

1.3.3螺旋模型 8

1.3.4喷泉模型 9

1.3.5智能模型 9

1.4软件开发方法 10

1.4.1结构化开发方法 10

1.4.2原型化开发方法 11

1.4.3面向对象的软件开发方法 12

1.5软件工具与软件开发环境 13

习题1 14

第2章 软件维护 15

2.1软件维护的基本概念 15

2.1.1软件维护的目的 15

2.1.2软件维护的类型 15

2.1.3软件维护的特性 17

2.1.4软件维护的代价 18

2.2软件维护的过程 19

2.3软件维护技术 21

2.4软件可维护性 22

2.4.1软件可维护性的定义 22

2.4.2提高可维护性的方法 24

2.5逆向工程和再工程 28

习题2 30

第3章 软件工具与集成化环境 31

3.1软件工具 31

3.1.1软件开发工具 31

3.1.2软件维护工具 34

3.1.3软件管理与支持工具 35

3.2集成化CASE环境 36

3.2.1概述 36

3.2.2集成化的CASE开发环境的要求 39

3.2.3集成化的CASE开发环境的体系结构 40

3.3软件开发工具Rational Rose 45

3.3.1 Rose工具简介 45

3.3.2业务用例图 46

3.3.3用例图 47

3.3.4类图 48

3.3.5协作图与时序图 49

3.3.6活动图 50

3.3.7状态图 51

3.3.8构件图和部署图 52

习题3 53

第4章 面向对象方法 54

4.1面向对象方法概述 54

4.1.1什么是面向对象方法 54

4.1.2面向对象方法的主要特点 55

4.2面向对象的基本概念 56

4.2.1对象与类 56

4.2.2继承 57

4.2.3多态性 58

4.2.4消息 58

4.3面向对象的分析 58

4.3.1需求分析中的问题 59

4.3.2 OOA的特点 60

4.3.3 OOA的基本任务与分析过程 60

4.4面向对象的设计 62

4.4.1 OOD的准则 62

4.4.2 OOD的基本任务 63

4.5典型的面向对象方法 64

4.5.1 Booch方法 64

4.5.2 Coad/Yourdon方法 66

4.5.3对象模型技术OMT 69

4.5.4 OOSE方法 75

习题4 76

第5章 统一建模语言(UML) 77

5.1 UML概述 77

5.1.1 UML的形成 77

5.1.2 UML的特点 78

5.1.3 UML建模及其构成 78

5.1.4 UML的图形表示 80

5.1.5通用模型元素 81

5.2建立用例模型 83

5.2.1需求分析与用例建模 84

5.2.2确定执行者 85

5.2.3确定用例 86

5.2.4建立用例之间的关系 88

5.2.5用例建模实例 89

5.3建立静态模型 92

5.3.1类图 92

5.3.2包图 102

5.4建立动态模型 103

5.4.1消息 103

5.4.2状态图 104

5.4.3顺序图 107

5.4.4合作图 109

5.4.5活动图 111

5.5建立实现模型 114

5.5.1构件图 114

5.5.2配置图 115

5.6统一过程及其应用 117

5.6.1 UML与RUP 117

5.6.2 RUP的特点 118

5.6.3 RUP的二维开发模型 119

5.6.4 RUP的迭代开发模式 121

习题5 122

第6章 软件测试 124

6.1软件测试概述 124

6.1.1软件测试的基本概念 124

6.1.2软件测试的特点和基本原则 126

6.1.3软件测试过程 129

6.1.4静态分析与动态测试 131

6.2软件测试的策略 133

6.2.1单元测试 133

6.2.2集成测试 136

6.2.3确认测试 138

6.2.4系统测试 139

6.2.5 α测试和β测试 140

6.2.6综合测试策略 141

6.3软件调试 141

6.3.1软件调试过程 142

6.3.2软件调试策略 142

6.4面向对象的测试 144

6.4.1面向对象测试的特点 145

6.4.2面向对象测试的类型 146

6.4.3分析模型测试 148

6.4.4面向对象的测试用例 153

习题6 154

第7章 面向对象程序设计语言的核心概念 155

7.1面向对象的目标 155

7.2面向对象的核心概念 157

7.2.1数据封装 157

7.2.2继承 158

7.2.3多态性 159

7.3按对象方式思维 161

7.4面向对象的思想和方法 163

7.4.1面向对象是一种认知方法学 163

7.4.2面向对象与软件IC 163

7.4.3面向对象方法与结构化程序设计方法 166

7.4.4对象是抽象数据类型的实现 167

7.5面向对象的程序设计语言 168

第8章 C++语言实现数据封装 173

8.1类的定义 173

8.2类的成员 175

8.2.1数据成员 175

8.2.2成员函数 176

8.2.3静态成员 178

8.2.4类外访问成员的方法 182

8.3 C++语言的类 182

8.4数据封装和信息隐蔽的意义 183

8.5构造函数 184

8.5.1构造函数的作用 184

8.5.2构造函数的定义 185

8.5.3重载构造函数 187

8.6复制构造函数 188

8.7析构函数 193

8.8对象的创建、释放和初始化 195

8.9对象和指针 197

8.9.1 this指针 197

8.9.2指向类对象的指针 200

8.9.3指向类的成员的指针 201

8.10友元关系 204

8.10.1友元函数 204

8.10.2友元类 206

8.10.3友元关系的总结 207

8.11与类和对象相关的问题 208

8.11.1类类型作为参数类型 208

8.11.2一个类的对象作为另一个类的成员 210

8.11.3临时对象 211

习题8 212

第9章 C++语言实现多态性 213

9.1重载运算符 213

9.1.1运算符重载的语法形式 216

9.1.2重载运算符规则 217

9.1.3一元运算符和二元运算符 219

9.1.4重载“++”和“--”的前缀和后缀方式 227

9.1.5重载赋值运算符 232

9.1.6重载运算符“()”和“[]” 235

9.1.7重载输入运算符和输出运算符 240

9.1.8指针悬挂问题 242

9.2 C++语言的类型转换 246

9.2.1标准类型转换为类类型 247

9.2.2类类型转换函数 249

9.3实例——复数类重载运算符 260

习题9 264

第10章 C++语言实现继承性 266

10.1继承和派生 266

10.1.1为什么要使用继承 266

10.1.2派生类的声明和继承方式 272

10.1.3基类对象的初始化 281

10.2多继承 288

10.2.1多继承的概念 288

10.2.2虚基类 291

10.3继承的意义 297

10.3.1模块的观点 298

10.3.2类型的观点 298

10.4虚函数 299

10.4.1静态多态性 300

10.4.2基类和派生类的指针与对象的关系 301

10.4.3虚函数与多态性 303

10.5纯虚函数和抽象类 313

10.6虚函数实例——Figure类 314

10.7类属 321

10.7.1无约束类属机制 321

10.7.2约束类属机制 322

10.8模板的概念 323

10.8.1函数模板与模板函数 323

10.8.2类模板与模板类 326

10.9实例——一维数组 331

10.10堆栈、队列的应用 339

习题10 342

第11章 Java语言基础 344

11.1 Java语言的发展历程 344

11.2 Java语言的特点 346

11.2.1简捷性 346

11.2.2面向对象 346

11.2.3动态性 348

11.2.4安全性 349

11.2.5平台无关性和可移植性 349

11.2.6高性能 349

11.2.7多线程 350

11.2.8分布式 350

11.2.9健壮性 350

11.3 Java语言的开发工具包 351

11.3.1 JDK的下载、安装和设置 351

11.3.2 JDK的简介 352

11.4 Java程序的基本结构 355

11.5 Java程序开发实例 356

11.5.1一个简单的Java Application程序 356

11.5.2一个简单的Java Applet程序 357

11.5.3 Java Applet图形界面的输入/输出 359

11.5.4 Java Application图形界面的输入/输出 361

11.6 Java符号集 363

11.7数据的简单类型 364

11.8常量 364

11.9变量 365

11.10运算符与表达式 366

11.10.1赋值运算与类型转换 366

11.10.2算术运算符 367

11.10.3关系与逻辑运算 369

11.10.4位运算 370

11.10.5其他运算符 371

11.10.6优先级 371

11.11流程控制语句 371

11.11.1分支语句 372

11.11.2循环语句 375

11.11.3跳转语句 378

习题11 379

第12章 Java语言程序设计 380

12.1 Java的类和对象 380

12.1.1系统定义的类 380

12.1.2用户程序自定义类 381

12.1.3创建对象与定义构造函数 383

12.1.4类的修饰符 386

12.2域和方法 386

12.2.1域 386

12.2.2方法 389

12.3访问控制符 392

12.4继承 393

12.4.1派生子类 394

12.4.2域的继承与隐藏 396

12.4.3 null、 this与super 400

12.5多态性 402

12.5.1方法的继承 402

12.5.2覆盖 403

12.5.3重载 403

12.5.4构造函数的继承与重载 406

12.6上转型对象 407

12.7接口 408

12.7.1接口的声明 409

12.7.2接口的实现 410

12.7.3接口的回调 410

12.7.4接口作为参数 411

12.8包 412

12.8.1创建包 413

12.8.2包的引用 413

12.9数组 414

12.9.1数组声明 414

12.9.2数组元素的引用及初始化 415

12.10字符串 417

12.10.1 String类 418

12.10.2 StringBuffer类 421

12.10.3 Java Application命令行参数 423

12.11语言基础类库 423

12.11.1 Object类 423

12.11.2数据类型类 424

12.11.3 Math类 425

12.11.4 System类 425

12.12 Applet类与Applet程序 425

12.12.1 Applet类 425

12.12.2 HTML文件的参数传递 428

12.13异常处理 429

12.13.1 Java语言异常处理的特点 429

12.13.2异常类的层次 433

12.13.3抛出异常 435

12.13.4异常处理 436

12.13.5嵌套的异常处理 437

12.14 Java多线程机制 437

12.14.1基本概念 437

12.14.2多线程实现方法 441

12.15 输入/输出流类 447

12.15.1文件系统 447

12.15.2读/写文件 452

12.15.3抽象流类 458

12.15.4文件输入入/输出流类 459

12.15.5加强输入/输出流类 462

12.15.6其他输入入/输出流类 463

12.15.7 Reader和Writer 470

12.16网络编程 471

12.16.1 InetAddress类 471

12.16.2 Socket类和ServerSocket类 473

12.16.3 DatagramPacket类和DatagramSocket类 478

12.16.4 URL类和URLConnection类 481

12.17图形用户界面的设计与实现 484

12.17.1图形用户界面的构成 484

12.17.2布局管理 485

12.17.3组件和事件处理 491

12.17.4 Java Swing基础 506

习题12 508

参考文献 510