第1章 异常处理 1
1.1 基本异常处理 2
1.1.1 Java中的异常 2
1.1.2 预定义的异常类 12
1.1.3 ArrayIndexOutOfBounds-Exception(另一种阅读顺序) 12
1.2 定义异常类 13
1.3 使用异常类 21
1.3.1 声明异常(推脱责任) 21
1.3.2 不需要被捕获的异常 24
1.3.3 AssertionError类(选读) 25
1.3.4 多重抛出和捕获 25
1.3.5 finally块(选读) 31
1.3.6 重新抛出异常(选读) 32
1.4 图形编程补充(选读) 43
小结 46
自测题答案 47
编程项目 50
第2章 流和文件I/O 53
2.1 流和文件I/O概览 54
2.1.1 流的概念 54
2.1.2 为什么要用文件进行I/O 54
2.1.3 文本文件和二进制文件的区别 54
2.2 文本文件I/O 55
2.2.1 用PrintWriter进行的文本文件输出 55
2.2.2 带有BufferedReader的文本文件输入 64
2.2.3 StringTokenizer类 70
2.2.4 FileReader和FileOutputStream类 73
2.3 File类 74
2.4 基本的二进制文件I/O 77
2.4.1 用ObjectOutputStream向二进制文件输出 78
2.4.2 一些有关writeUTF的细节(选读) 82
2.4.3 用ObjectInputStream从二进制文件读出 82
2.4.4 EOFException类 87
2.4.5 FileInputStream和FileOutputStream类 89
2.5 用对象流进行对象I/O 93
2.5.1 类对象的二进制I/O 93
2.5.2 Serializable接口 96
2.5.3 二进制文件中的数组对象 97
2.6 图形编程补充(选读) 99
小结 104
自测题答案 104
编程项目 108
第3章 动态数据结构与泛型 110
3.1 向量 111
3.1.1 使用向量 111
3.1.2 参数化的类与泛型 120
3.2 链式数据结构 121
3.2.1 链表 121
3.2.2 内部类 129
3.2.3 节点内部类 130
3.2.4 迭代器 131
3.2.5 对链表的异常处理 141
3.2.6 链表的变体 144
3.2.7 其他链式数据结构 145
3.3 泛型 146
小结 152
自测题答案 152
编程项目 159
第4章 递归 161
4.1 递归基础 161
4.1.1 递归是如何工作的 165
4.1.2 递归及迭代定义 170
4.1.3 返回值的递归方法 171
4.2 用递归编程 175
小结 185
自测题答案 185
编程项目 187
第5章 使用Swing的视窗界面 189
5.1 背景知识 190
5.1.1 GUI——图形用户界面 190
5.1.2 事件驱动编程 190
5.2 基本的Swing细节 192
5.2.1 更多关于窗口侦听器的内容 197
5.2.2 屏幕对象的尺寸单位 198
5.2.3 更多关于setVisible的内容 199
5.2.4 JFrame类的一些方法 207
5.2.5 布局管理器 208
5.3 按钮和动作侦听器 214
5.3.1 按钮 216
5.3.2 动作侦听器和动作事件 217
5.3.3 接口 221
5.3.4 模型-视图-控制器模式 223
5.4 容器类 225
5.4.1 JPanel类 225
5.4.2 Container类 228
5.5 GUI的文本I/O 231
5.5.1 文本区和文本域 231
5.5.2 输入和输出数字 238
5.5.3 捕获一个NumberFormat-Exception 243
小结 246
自测题答案 246
编程项目 251
第6章 applet与HTML 253
6.1 applet 254
6.1.1 applet基础 254
6.1.2 运行一个applet 256
6.1.3 向applet添加图标 259
6.2 HTML简介 261
6.2.1 HTML基础 261
6.2.2 插入超链接 263
6.2.3 显示一张图片 267
6.3 HTML中的applct 267
6.3.1 将applet放入HTML文档中 268
6.3.2 较老的applet类(选读) 270
6.3.3 applet与安全 271
小结 271
自测题答案 271
编程项目 272
第7章 更多有关Swing的内容 274
7.1 菜单 274
7.1.1 菜单条、菜单和菜单条目 275
7.1.2 嵌套式菜单 278
7.2 使GUI更漂亮(功能也更强) 280
7.2.1 添加图标 280
7.2.2 向菜单条目添加图标 285
7.2.3 滚动条的JScrollPane类 286
7.2.4 添加边界 290
7.3 更多布局管理器 294
7.3.1 BoxLayout管理器类 295
7.3.2 strut与glue 297
7.3.3 设置组件间的间隔 299
7.3.4 Box容器类 299
7.3.5 CardLayout管理器 302
7.4 内部类 306
7.5 更多关于事件和侦听器的内容 308
7.5.1 WindowListener接口 308
7.5.2 更多与更新GUI有关的细节 318
7.6 Swing类的层次关系 318
小结 320
自测题答案 321
编程项目 323