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

  • 购买积分:14 如何计算积分?
  • 作  者:陈文宇,白忠建,吴劲等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121171949
  • 页数:404 页
图书介绍:本书内容涉及面向对象的思想、方法和技术及两门著名的面向对象程序设计语言——C++语言和Java语言,分为两部分,共12章。第一部分介绍面向对象技术,包括:软件工程概述、软件维护、软件工具与集成化环境、面向对象方法、统一建模语言UML、软件测试;第二部分介绍面向对象程序设计语言,包括:面向对象程序设计语言的核心概念、C++语言实现数据封装、C++语言实现多态性、C++语言实现继承性、Java语言基础、Java语言程序设计。

第1章 软件工程概述 1

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

1.1.1软件工程的发展过程 1

1.1.2软件危机 2

1.1.3软件工程研究的内容 2

1.2软件与软件工程过程 3

1.2.1软件的概念和特点 4

1.2.2软件工程过程 5

1.3软件过程模型 5

1.3.1瀑布模型 5

1.3.2增量模型 6

1.3.3螺旋模型 6

1.3.4喷泉模型 7

1.3.5智能模型 8

1.4软件开发方法 8

1.4.1结构化开发方法 9

1.4.2原型化开发方法 9

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

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

习题1 11

第2章 软件维护 12

2.1软件维护的基本概念 12

2.1.1软件维护的目的 12

2.1.2软件维护的类型 12

2.1.3软件维护的特性 13

2.1.4软件维护的代价 14

2.2软件维护的过程 15

2.3软件维护技术 17

2.4软件可维护性 18

2.4.1软件可维护性的定义 18

2.4.2提高可维护性的方法 19

2.5逆向工程和再工程 23

习题2 24

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

3.1软件工具 25

3.1.1软件开发工具 25

3.1.2软件维护工具 27

3.1.3软件管理与支持工具 28

3.2集成化CASE环境 30

3.2.1概述 30

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

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

3.3软件开发工具Rational Rose 37

3.3.1 Rose工具简介 37

3.3.2业务用例图 38

3.3.3用例图 38

3.3.4类图 39

3.3.5协作图与时序图 40

3.3.6活动图 41

3.3.7状态图 41

3.3.8构件图和部署图 42

习题3 43

第4章 面向对象方法 44

4.1面向对象方法概述 44

4.1.1什么是面向对象方法 44

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

4.2面向对象的基本概念 46

4.2.1对象与类 46

4.2.2继承 47

4.2.3多态性 47

4.2.4消息 48

4.3面向对象的分析 48

4.3.1需求分析中的问题 48

4.3.2 OOA的特点 49

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

4.4面向对象的设计 51

4.4.1 OOD的准则 51

4.4.2 OOD的基本任务 52

4.5典型的面向对象方法 53

4.5.1 Booch方法 53

4.5.2 Coad/Yourdon方法 55

4.5.3对象模型技术(OMT) 57

4.5.4 OOSE方法 62

习题4 63

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

5.1 UML概述 64

5.1.1 UML的形成 64

5.1.2 UML的特点 65

5.1.3 UML建模及其构成 65

5.1.4 UML的图形表示 66

5.1.5通用模型元素 68

5.2建立用例模型 69

5.2.1需求分析与用例建模 69

5.2.2确定执行者 70

5.2.3确定用例 72

5.2.4建立用例之间的关系 74

5.2.5用例建模实例 74

5.3建立静态模型 77

5.3.1类图 77

5.3.2包图 86

5.4建立动态模型 87

5.4.1消息 87

5.4.2状态图 87

5.4.3顺序图 90

5.4.4合作图 93

5.4.5活动图 94

5.5建立实现模型 97

5.5.1构件图 97

5.5.2配置图 98

5.6统一过程及其应用 99

5.6.1 UML与RUP 99

5.6.2 RUP的特点 100

5.6.3 RUP的二维开发模型 101

5.6.4 RUP的迭代开发模式 103

习题5 104

第6章 软件测试 105

6.1软件测试概述 105

6.1.1软件测试的基本概念 105

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

6.1.3软件测试过程 109

6.1.4静态分析与动态测试 111

6.2软件测试的策略 113

6.2.1单元测试 113

6.2.2集成测试 115

6.2.3确认测试 118

6.2.4系统测试 118

6.2.5 α测试和β测试 119

6.2.6综合测试策略 120

6.3软件调试 120

6.3.1软件调试过程 120

6.3.2软件调试策略 121

6.4面向对象的测试 123

6.4.1面向对象测试的特点 123

6.4.2面向对象测试的类型 124

6.4.3分析模型测试 126

6.4.4面向对象的测试用例 130

习题6 130

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

7.1面向对象的目标 131

7.2面向对象的核心概念 133

7.2.1数据封装 133

7.2.2继承 134

7.2.3多态性 134

7.3按对象方式思维 136

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

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

7.4.2面向对象与软件IC 138

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

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

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

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

8.1类的定义 146

8.2类的成员 148

8.2.1数据成员 148

8.2.2成员函数 149

8.2.3静态成员 150

8.2.4类外访问成员的方法 153

8.3 C++语言的类 153

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

8.5构造函数 154

8.5.1构造函数的作用 154

8.5.2构造函数的定义 155

8.5.3重载构造函数 157

8.6复制构造函数 158

8.7析构函数 162

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

8.9对象和指针 165

8.9.1 this指针 165

8.9.2指向类对象的指针 167

8.9.3指向类的成员的指针 168

8.10友元关系 170

8.10.1友元函数 170

8.10.2友元类 171

8.10.3友元关系的总结 172

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

8.11.1类类型作为参数类型 173

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

8.11.3临时对象 176

习题8 176

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

9.1重载运算符 177

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

9.1.2重载运算符规则 180

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

9.1.4重载“++”和“—”的前缀和后缀方式 188

9.1.5重载赋值运算符 191

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

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

9.1.8指针悬挂问题 199

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

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

9.2.2类类型转换函数 204

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

习题9 215

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

10.1继承和派生 217

10.1.1为什么要使用继承 217

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

10.1.3基类对象的初始化 229

10.2多继承 234

10.2.1多继承的概念 234

10.2.2虚基类 236

10.3继承的意义 241

10.3.1模块的观点 241

10.3.2类型的观点 241

10.4虚函数 242

10.4.1静态多态性 243

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

10.4.3虚函数与多态性 245

10.5纯虚函数和抽象类 253

10.6虚函数实例——Figure类 254

10.7类属 258

10.7.1无约束类属机制 259

10.7.2约束类属机制 259

10.8模板的概念 260

10.8.1函数模板与模板函数 260

10.8.2类模板与模板类 263

10.9实例——一维数组 267

10.10堆栈、队列的应用 273

习题10 275

第11章 Java语言基础 277

11.1 Java语言的发展历程 277

11.2 Java语言的特点 278

11.2.1简捷性 278

11.2.2面向对象 279

11.2.3动态性 280

11.2.4安全性 281

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

11.2.6 高性能 281

11.2.7多线程 282

11.2.8分布式 282

11.2.9健壮性 282

11.3 Java语言的开发工具包 282

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

11.3.2 JDK的简介 284

11.4 Java程序的基本结构 286

11.5 Java程序开发实例 286

11.5.1一个简单的Java Application程序 287

11.5.2一个简单的Java Applet程序 288

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

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

11.6 Java符号集 292

11.7数据的简单类型 293

11.8常量 293

11.9变量 294

11.10运算符与表达式 295

11.10.1赋值运算与类型转换 295

11.10.2算术运算符 295

11.10.3关系与逻辑运算 297

11.10.4位运算 298

11.10.5其他运算符 298

11.10.6优先级 299

11.11流程控制语句 299

11.11.1分支语句 299

11.11.2循环语句 302

11.11.3跳转语句 303

习题11 304

第12章 Java语言程序设计 305

12.1 Java的类和对象 305

12.1.1系统定义的类 305

12.1.2用户程序自定义类 306

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

12.1.4类的修饰符 309

12.2域和方法 310

12.2.1域 310

12.2.2方法 312

12.3访问控制符 314

12.4继承 315

12.4.1派生子类 316

12.4.2域的继承与隐藏 318

12.4.3 null、this与super 320

12.5多态性 322

12.5.1方法的继承 322

12.5.2覆盖 323

12.5.3重载 323

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

12.6上转型对象 325

12.7接口 326

12.7.1接口的声明 327

12.7.2接口的实现 327

12.7.3接口的回调 328

12.7.4接口作为参数 329

12.8包 329

12.8.1创建包 330

12.8.2包的引用 330

12.9数组 331

12.9.1数组声明 331

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

12.10字符串 334

12.10.1 String类 334

12.10.2 StringBuffer类 337

12.10.3 Java Application命令行参数 338

12.11语言基础类库 338

12.11.1 Object类 338

12.11.2数据类型类 339

12.11.3 Math类 339

12.11.4 System类 339

12.12 Applet类与Applet程序 340

12.12.1 Applet类 340

12.12.2 HTML文件的参数传递 342

12.13异常处理 343

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

12.13.2异常类的层次 346

12.13.3抛出异常 347

12.13.4异常处理 348

12.13.5嵌套的异常处理 349

12.14 Java多线程机制 349

12.14.1基本概念 349

12.14.2多线程实现方法 352

12.15输入/输出流类 356

12.15.1文件系统 357

12.15.2读/写文件 360

12.15.3抽象流类 364

12.15.4文件输入/输出流类 365

12.15.5加强输入/输出流类 367

12.15.6其他输入/输出流类 368

12.15.7 Reader和Writer 373

12.16网络编程 374

12.16.1 InetAddress类 374

12.16.2 Socket类和ServerSocket类 375

12.16.3 DatagramPacket类和DatagramSocket类 379

12.16.4 URL类和URLConnection类 381

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

12.17.1图形用户界面的构成 383

12.17.2布局管理 384

12.17.3组件和事件处理 389

12.17.4 Java Swing基础 400

习题12 402

参考文献 403