《实用Java教程:基于BlueJ的对象优先方法》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(英)DAVIDJ.BARNESMICHAELKOLLING著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115190420
  • 页数:387 页
图书介绍:本书主要从软件工程的角度介绍面向对象和程序设计的基本概念,侧重于讲解面向对象程序设计原理,而不是Java语言细节。书中从面向对象的基础知识讲起,介绍了对象和类;然后深入到应用结构,讲解了继承、抽象技术、构建图形用户界面、错误处理;最后给出了一个完整的案例。书中使用两个工具来实际运用所介绍的概念:Java编程语言以及Java编程环境BlueJ。全书按照项目驱动的方式来展开,讨论了大量的程序项目,并且提供了很多练习。本书内容由浅入深,适合初学者快速入门,也适合高级程序员和专业人士学习参考,可作为计算机相关专业“面向对象程序设计”课程的教材。

第一部分 面向对象基础 1

第1章 对象和类 1

1.1对象和类 1

1.2创建对象 1

1.3调用方法 2

1.4参数 3

1.5数据类型 4

1.6多个实例 5

1.7状态 5

1.8对象中的字段和方法 6

1.9对象交互 7

1.10源代码 8

1.11另一个例子 9

1.12返回值 9

1.13对象作为参数进行传递 10

小结 11

关键术语 11

第2章 理解类的定义 13

2.1售票机 13

2.2检查类的定义 14

2.3字段、构造器和方法 16

字段 17

构造器 19

2.4通过参数传递数据 20

2.5赋值 21

2.6访问器方法 22

2.7修改器方法 24

2.8在方法中打印 25

2.9简易型售票机的总结 27

2.10对售票机设计的探讨 28

2.11做选择:条件语句 28

2.12高级条件语句的例子 31

2.13局部变量 32

2.14字段、参数和局部变量 33

2.15改进型售票机的总结 34

2.16自我复习练习题 34

2.17回顾一个熟悉的例子 36

小结 39

关键术语 39

第3章 对象交互 42

3.1时钟的例子 42

3.2抽象与模块化 42

3.3软件中的抽象 43

3.4在时钟例子里的模块化 43

3.5实现时钟显示器 44

3.6类图与对象图 45

3.7基本类型和对象类型 47

3.8 ClockDisplay的源代码 48

NumberDisplay类 48

字符串拼接 49

取模运算符 50

ClockDisplay类 51

3.9对象创建对象 54

3.10多个构造器 55

3.11方法调用 55

内部方法调用 55

外部方法调用 56

时钟显示器的总结 57

3.12另一个对象交互的例子 57

邮件系统的例子 58

this关键字 59

3.13使用调试器 60

设置断点 60

单步执行 61

单步进入方法 62

3.14方法调用回顾 63

小结 63

关键术语 64

第4章 对象集合 65

4.1在可变容量的容器中存放对象 65

4.2个人记事本 65

4.3初涉类库 66

4.4容器的对象结构 67

4.5泛型类 69

4.6容器内的编号 69

4.7从容器中删除对象 70

4.8处理整个容器 71

for-each循环 72

while循环 73

遍历容器 76

索引存取与迭代器的比较 77

4.9记事本例子的总结 77

4.10另一个例子:拍卖系统 78

Lot类 78

Auction类 79

匿名对象 81

使用容器 82

4.11可变容量容器的总结 84

4.12固定容量的容器 84

日志文件分析器 84

声明数组变量 86

创建数组对象 87

使用数组对象 88

分析日志文件 88

for循环 89

小结 93

关键术语 93

第5章 高级行为 95

5.1类库的文档 95

5.2 TechSupport系统 96

研究TechSupport系统 96

阅读代码 97

5.3阅读类文档 101

接口与实现 102

使用类库中的类的方法 102

检查字符串是否相等 104

5.4增加随机行为 104

Random类 105

在有限范围内产生随机数 105

产生随机的回答 106

阅读参数化的类的文档 108

5.5包和导入 109

5.6使用映射表示关联 109

映射的概念 110

使用HashMap 110

在TechSupport系统中使用映射 111

5.7使用集合 113

5.8分割字符串 114

5.9完成TechSupport系统 115

5.10编写类文档 116

在BlueJ中使用javadoc 117

类文档的组成 117

5.11公共与私有 118

信息隐藏 119

私有方法和公共字段 119

5.12通过接口研究类 120

5.13类变量和常量 122

static关键字 122

常量 124

小结 124

关键术语 125

第6章 使对象正常运行 126

6.1引言 126

6.2测试和调试 126

6.3用BlueJ进行单元测试 127

使用检查器 130

正向测试和反向测试 132

6.4测试自动化 132

回归测试 132

自动检查测试结果 134

记录测试 136

夹具 138

6.5模块化和接口 139

6.6调试场景 140

6.7注释与风格 141

6.8人工走查 141

高层次的走查 142

用走查来检查状态 143

口头走查 145

6.9打印语句 145

6.10选择测试策略 148

6.11调试 148

6.12在实战中使用这些技术 149

小结 149

关键术语 149

第7章 类的设计 150

7.1引言 150

7.2 world-of-zuul游戏的例子 151

7.3耦合和内聚的介绍 152

7.4代码重复 153

7.5扩展 157

任务 157

找到相关的源代码 157

7.6耦合 158

7.7责任驱动的设计 162

7.8改动局部化 164

7.9隐性耦合 165

7.10预见性 167

7.11内聚 168

方法的内聚 168

类的内聚 169

内聚对于可读性的好处 170

内聚对于重用的好处 170

7.12重构 171

重构与测试 171

重构的例子 171

7.13语言无关的重构 174

枚举类型 174

命令界面的进一步解耦 175

7.14设计原则 177

7.15 脱离BlueJ执行程序 178

类方法 178

main方法 178

类方法的限制 179

小结 179

关键术语 179

第二部分 应用程序结构 181

第8章 通过继承改进结构 181

8.1 DoME例子 181

DoME的类与对象 182

DoME源代码 184

DoME程序的讨论 189

8.2使用继承 189

8.3继承层次 191

8.4 Java的继承 191

继承与访问权限 192

继承与初始化 192

8.5 DoME:增加另一种媒体类型 194

8.6(迄今为止)继承的优点 196

8.7子类型 196

子类与子类型 197

子类型与赋值 198

子类型与参数传递 199

多态变量 199

换型 200

8.8 Object类 201

8.9自动包装与包裹类 202

8.10容器层次 202

小结 202

关键术语 203

第9章 继承深入 204

9.1问题:DoME的打印方法 204

9.2静态类型和动态类型 205

9.3覆写 208

9.4动态查找方法 209

9.5方法中的超类调用 211

9.6方法多态性 212

9.7 Obj ect的方法:toString 212

9.8受保护的访问 214

9.9有覆写的继承的另一个例子 216

小结 218

关键术语 218

第10章 高级抽象技术 220

10.1仿真 220

10.2狐狸与兔子仿真 220

foxes-and-rabbits工程 221

Rabbit类 223

Fox类 225

Simulator类:设置 228

Simulator类:仿真的一步 231

采取措施改进仿真 232

10.3抽象类 232

Animal超类 233

抽象方法 233

抽象类 235

10.4进一步的抽象方法 237

10.5多继承 239

Actor类 239

通过抽象实现的灵活性 240

有选择地绘画 240

可以画的角色:多继承 240

10.6 接口 241

Actor接口 241

接口的多继承 243

作为类型的接口 243

作为规范的接口 244

接口的其他例子 245

抽象类还是接口 246

10.7继承的总结 246

小结 246

关键术语 246

第11章 构造图形用户界面程序 248

11.1引言 248

11.2组件、布局和事件处理 248

11.3 AWT和Swing 249

11.4 ImageViewer例子 249

第一个实验:创建一个框架 250

加入简单的组件 251

加入菜单 253

事件处理 253

集中接收事件 254

内部类 256

匿名的内部类 257

11.5 ImageViewer 1.0:第一个完整的版本 258

图像处理类 259

加入图像 260

布局 261

嵌套的容器 263

图像过滤器 265

对话框 267

11.6 ImageViewer 2.0:改进的程序结构 269

11.7 ImageViewer 3.0:更多界面组件 273

按钮 273

边界 275

11.8进一步的扩展 276

11.9另一个例子:SoundPlayer 277

小结 279

关键术语 280

第12章 错误处理 281

12.1 address-book工程 281

12.2防御性编程 285

客户-服务器交互 285

参数检查 286

12.3服务器错误报告 287

通知用户 287

通知客户对象 287

12.4异常抛出原则 290

抛出异常 290

异常类 291

异常的影响 292

不受检异常 292

阻止对象创建 293

12.5异常处理 294

受检异常:throws子句 295

捕捉异常:try语句 295

抛出和捕捉多个异常 296

扩散异常 298

finally子句 298

12.6定义新的异常类 299

12.7使用断言 300

内部一致性检查 300

断言语句 301

使用断言的指南 302

断言与BlueJ单元测试框架 303

12.8错误恢复和错误避免 303

错误恢复 303

错误避免 304

12.9案例研究:文本输入-输出 305

阅读器、写入器和流 306

address-book-io工程 306

用FileWriter类做文本输出 308

用FileReader类做文本输入 309

Scanner:从终端读输入 310

对象串行化 310

小结 311

关键术语 311

第13章 应用程序设计 312

13.1分析与设计 312

动词-名词方法 312

电影院订票系统的例子 312

发现类 313

使用CRC卡 313

场景 314

13.2类的设计 316

设计类的界面 317

用户界面设计 317

13.3文档 318

13.4合作 318

13.5原型 318

13.6软件成长 319

瀑布模型 319

迭代开发 319

13.7使用设计模式 320

模式的结构 321

装饰 321

单件 322

工厂方法 322

观察者 323

模式总结 324

小结 325

关键术语 325

第14章案例研究 326

14.1案例研究 326

14.2分析与设计 327

发现类 327

使用CRC卡 327

场景模拟 328

14.3类设计 329

设计类的接口 329

合作者 329

概要实现 330

测试 333

遗留问题 334

14.4迭代开发 334

开发步骤 334

第一个阶段 335

第一阶段的测试 338

开发的下一个阶段 338

下一步开发的想法 339

重用 339

14.5另一个例子 340

14.6百尺竿头 340

附录A 使用BlueJ 341

附录B Java数据类型 342

附录C Java控制结构 344

附录D 运算符 349

附录E 脱离BlueJ运行Java程序 351

附录F 配置BlueJ 354

附录G 使用调试器 356

附录H JUnit单元测试工具 360

附录I javadoc 362

附录J 程序风格指南 365

附录K 重要的类库类 368

索引 371