第一篇 3
第1章 步入Java世界 3
1.1引言 3
1.2软件 4
1.3编译程序 4
1.4用Java编程 5
1.5第一个程序 7
1.5.1分析“Hello world”程序 8
1.5.2为程序添加注释 9
1.6 Java的基本数据类型 9
1.7声明变量 11
1.8赋值 13
1.9创建常量 14
1.10算术运算符 14
1.11表达式 16
1.12输出 18
1.13输入:Scanner类 21
1.14字符串 23
1.15程序设计 25
自测题 25
编程练习 27
第2章 选择 29
2.1引言 29
2.2构造选项 29
2.3 if语句 30
2.3.1比较运算符 31
2.3.2 if语句中的多条指令 31
2.4 if…else语句 34
2.5逻辑运算符 36
2.6嵌套的if…else语句 37
2.7 switch语句 39
自测题 41
编程练习 44
第3章 迭代 47
3.1引言 47
3.2 for循环 47
3.3 while循环 54
3.4 do…while循环 56
3.5选择适当的循环 61
自测题 62
编程练习 64
第4章 方法的实现 67
4.1引言 67
4.2声明和定义方法 68
4.3调用方法 70
4.4方法的输入输出 71
4.5方法应用实例 75
4.6变量作用域 79
4.7方法重载 81
4.8在菜单驱动程序中应用帮助方法 84
自测题 87
编程练习 89
第5章 数组 91
5.1引言 91
5.2创建数组 92
5.3访问数组元素 95
5.4数组作为参数传递 98
5.5数组作为方法的返回值 101
5.6增强的for循环 104
5.7一些有用的数组方法 105
5.7.1数组最大值 105
5.7.2数组元素和 107
5.7.3数组成员 108
5.7.4数组查找 109
5.7.5最终程序 110
自测题 116
编程练习 116
第6章 类和对象 119
6.1引言 119
6.2面向对象的概念 119
6.3类作为数据类型 121
6.3.1 Oblong类 122
6.3.2使用Oblong类 123
6.4使用String类 127
6.5用于键盘输入的Scanner类 132
6.6 BankAccount类 134
6.7对象数组 135
自测题 137
编程练习 138
第7章 类的实现 139
7.1引言 139
7.2在Java中实现类 139
7.2.1 Oblong类 140
7.2.2 BankAccount类 143
7.3 static关键字 146
7.4初始化属性 149
7.5 EasyScanner类 149
7.6传递对象参数 150
7.7聚集类 151
自测题 168
编程练习 169
第8章 通过继承扩展类 173
8.1引言 173
8.2定义继承 173
8.3在Java中实现继承 174
8.4方法重写 184
8.5抽象类 188
8.6 final修饰符 192
8.7 Object类 193
8.8包装类和autoboxing 194
8.9一个混合类型的列表 195
自测题 199
编程练习 199
第9章 软件质量 203
9.1引言 203
9.2开发软件 204
9.3可维护性 205
9.3.1封装的重要性 205
9.3.2文档 206
9.3.3 Javadoc 209
9.4可靠性 212
9.4.1单元测试 214
9.4.2集成测试 217
9.4.3黑盒测试 218
9.4.4白盒测试 220
9.4.5测试日志 221
9.5健壮性 222
9.6可用性 227
9.6.1文本格式化 230
9.6.2图形用户界面 235
自测题 236
编程练习 237
第10章 图形和事件驱动程序 239
10.1引言 239
10.2 Swing程序包 239
10.3 SmileyFace类 240
10.4 Java中的事件处理机制:ChangingFace类 245
10.5一个交互式的图形类 252
10.6 Oblong类的图形化用户界面(GUI) 255
10.7一个公制度量转换器 258
10.8布局策略 263
10.9复合容器 265
10.10 对象集合的GUI 267
自测题 267
编程练习 267
第11章 案例研究——第1部分 269
11.1 引言 269
11.2 需求 269
11.3 设计 270
11.4 实现Payment类 271
11.5 ObjectList类 272
11.6 PaymentList类 275
11.7 实现Tenant类 281
11.8 实现TenantList类 282
自测题 293
编程练习 294
第12章 案例研究——第2部分 295
12.1 引言 295
12.2 记录永久信息 295
12.3 GUI的设计 296
12.4 设计事件处理程序 298
12.5 实现 302
12.6 测试系统 310
12.7 下一步的任务 314
编程练习 314
第二篇 317
第13章 程序包 317
13.1 引言 317
13.2 理解程序包的概念 317
13.3 访问程序包中的类 318
13.4 开发自己的程序包 321
13.5 程序包的作用域 323
13.6 设置classpath环境变量 323
13.7 从命令行运行应用程序 324
13.8 配置程序包 326
13.9 Java API核心程序包概述 329
自测题 330
编程练习 330
第14章 抽象、继承和接口 333
14.1 引言 333
14.2 抽象 333
14.3 运行时绑定与编译时绑定 334
14.4 抽象类和接口 336
14.5 实现多个接口 342
14.6 适配器和内部类 348
14.7 toString方法 351
自测题 352
编程练习 353
第15章 异常 357
15.1 引言 357
15.2 Java中预定义的异常类 357
15.3 处理异常 359
15.3.1 声明异常 361
15.3.2 捕捉异常 365
15.4 finally语句 367
15.5 在GUI应用程序中的异常 370
15.6 在自定义的类中使用异常 373
15.7 抛出异常 378
15.8 创建自己的异常类 380
15.9 再次抛出异常 383
15.10 为异常编写文档 383
自测题 384
编程练习 385
第16章 二维数组 387
16.1 引言 387
16.2 创建二维数组 388
16.3 初始化二维数组 389
16.4 不规则数组 390
16.5 NoughtsAndCrosses类 391
自测题 400
编程练习 401
第17章 Java聚集类框架 405
17.1 引言 405
17.2 List接口和ArrayList类 406
17.2.1 泛型 406
17.2.2 使用接口类型代替实现类型 408
17.2.3 List接口定义的方法 408
17.3 通过聚集类使用增强的for循环 411
17.4 Set接口和HashSet类 412
17.4.1 Set接口定义的方法 413
17.4.2 遍历集合中的所有元素 414
17.4.3 Iterator对象 415
17.5 Map接口和HashMap类 417
17.6 在Java聚集类中使用自己的类 421
17.6.1 定义toString方法 422
17.6.2 定义equals方法 423
17.6.3 定义hashCode方法 424
17.7 为Book类的对象开发聚集类 425
自测题 428
编程练习 429
第18章 高级图形编程 433
18.1 引言 433
18.2 做出选择 433
18.2.1 下拉菜单 434
18.2.2 弹出式菜单 439
18.2.3 JDialog类和JRadioButton类 442
18.2.4 模式对话框和非模式对话框 445
18.2.5 JComboBox类 446
18.3 JFileChooser类 448
18.4 JSlider类 454
自测题 456
编程练习 456
第19章 改进用户界面 459
19.1 引言 459
19.2 Border接口 459
19.3 通过Icon接口合并文本和图形 461
19.4 ImageIcon类 464
19.5 创建消息框和输入框 466
19.6 创建新的颜色 473
19.7 创建新的字体 475
19.8 更多的布局策略 477
19.9 创建良好用户界面的原则 481
自测题 481
编程练习 482
第20章 文件处理 483
20.1 引言 483
20.2 输入和输出 484
20.3 输入和输出设备 484
20.4 文件操作 485
20.4.1 编码 486
20.4.2 访问 486
20.5 读写文本文件 486
20.6 读写二进制文件 495
20.7 以字符为单位读取文本文件 498
20.8 对象序列化 499
20.9 随机访问文件 502
自测题 508
编程练习 508
第21章 高级案例研究 509
21.1 引言 509
21.2 系统概述 509
21.3 需求分析与说明 510
21.4 设计 511
21.5 实现 514
21.5.1用Java语言实现枚举类型 515
21.5.2 Runway类 516
21.5.3 Plane类 518
21.5.4 Airport类 524
21.6 测试 536
21.7 GUI的设计 537
21.8 JTabbedPane类 538
21.9 AriportFrame类 540
21.10 Airport对话框 543
自测题 549
编程练习 549
第22章 多线程程序 551
22.1 引言 551
22.2 并发进程 551
22.3 线程 552
22.4 Thread类 555
22.5 线程的执行与调度 558
22.6 另一种实现方法 559
22.7 线程同步 562
22.8 线程状态 563
22.9 制作动画 564
22.10 Timer类 570
自测题 574
编程练习 575
第23章 Java网络编程 577
23.1 引言 577
23.2 applet 578
23.2.1 在浏览器中运行applet 578
23.2.2 专用的applet方法 581
23.2.3 创建applet的策略 582
23.3 访问远程数据库 582
23.4 Socket 587
23.5 一个简单的服务器应用程序 588
23.6 一个简单的客户端应用程序 594
自测题 599
编程练习 599
第24章 Java的背景 601
24.1 引言 601
24.2 语言的尺寸 601
24.2.1 指针 602
24.2.2 多继承 602
24.3 语言的可靠性 603
24.3.1 别名 603
24.3.2 重写clone方法 606
24.3.3 不变对象 608
24.3.4 使用Object类的clone方法 609
24.3.5 垃圾收集 611
24.4 Java语言的角色 612
24.5 进一步的学习 613
自测题 613
编程练习 614