第一部分 预备知识 3
第1小时 成为一个程序员 3
1.1 选择一种语言 4
1.2 告诉计算机做什么 5
1.3 程序如何工作 7
1.4 程序为何不工作 7
1.5 Java概述 8
1.6 练习:安装JDK 9
1.7 小结 10
1.8 问题和答案 10
1.9 小测验 11
1.10 课外活动 12
第2小时 编写第一个程序 13
2.1 需要用什么来编写程序 13
2.2 创建BigDebt程序 14
2.3 开始编程 15
2.3.1 class语句 15
2.3.2 main语句做什么 16
2.3.3 大括号标记 16
2.4 在debt变量中保存信息 16
2.4.2 显示debt的内容 17
2.4.1 改变debt中保存的信息 17
2.6 将程序编译为一个类文件 18
2.5 保存完成的程序 18
2.7 修正错误 19
2.8 运行程序 20
2.9 练习:修改程序 20
2.10 小结 21
2.11 问题和答案 21
2.12 小测验 22
2.13 课外活动 23
3.1 第一站:JavaSoft 25
第3小时 Java语言概述及相关知识 25
3.2 在学校里使用Java 27
3.3 JavaWorld简介 28
3.4 在Instant Ballpark中谈论一场球赛 29
3.5 进入商业领域 30
3.6 在Gamelan处询问方向 31
3.7 以Castanets软件结束 33
3.8 练习:将Java放到桌面上 34
3.9 问题和答案 35
3.11 课外活动 36
3.10 小测验 36
第4小时 理解Java程序怎样工作 37
4.1 创建一个应用程序 37
4.2 给应用程序传递变元 38
4.3 Applet基础 39
4.4 给Applet传递参数 41
4.5 练习:观察用于运行applet的代码 42
4.6 小结 42
4.7 问题和答案 42
4.9 课外活动 43
4.8 小测验 43
第二部分 学习编程的基础知识 47
第5小时 保存和修改程序中的信息 47
5.1 语句和表达式 47
5.2 分配变量类型 48
5.2.1 整数和浮点数 48
5.2.2 字符和字符串 48
5.2.3 其它数值变量类型 49
5.2.4 boolean(布尔)变量类型 50
5.3 命名变量 50
5.4 在变量中存储信息 51
5.5 练习:使用表达式 52
5.6 运算符概述 53
5.6.1 将变量值递增1和递减1 54
5.6.2 运算符优先级 54
5.7 小结 55
5.8 问题和答案 56
5.9 小测验 56
5.10 课外活动 57
第6小时 使用字符串来通信 59
6.1 用字符串来保存文本 59
6.3 在字符串中使用特殊字符 60
6.2 在程序中显示字符串 60
6.4 字符串的粘接 61
6.5 变量与字符串一同使用 62
6.6 高级字符串处理 63
6.6.1 比较两个字符串 63
6.6.2 确定字符串的长度 63
6.6.3 改变字符串的大小写 63
6.7 练习:创建Credits程序 64
6.8 小结 65
6.9 问题和答案 66
6.10 小测验 67
6.11 课外活动 67
7.1 if语句 69
第7小时 使用条件判断做决定 69
7.1.1 小于和大于比较 70
7.1.2 等于或不等于比较 70
7.1.3 用块语句组织一个程序 71
7.2 if-else语句 72
7.3 switch语句 73
7.4 条件运算符 73
7.5 练习:观看时钟 74
7.7 问题和答案 77
7.6 小结 77
7.8 小测验 78
7.9 课外活动 79
第8小时 用循环来重复操作 81
8.1 for循环 82
8.2 while循环 83
8.3 do-while循环 84
8.4 退出循环 84
8.5 命名一个循环 85
8.6 练习:给计算机上一课 86
8.7 小结 87
8.9 小测验 88
8.8 问题和答案 88
8.10 课外活动 89
第三部分 高级议题 93
第9小时 用数组存储信息 93
9.1 创建数组 93
9.2 使用数组 95
9.3 多维数组 95
9.4 练习:奖金数组 96
9.5 小结 98
9.6 问题和答案 98
9.8 课外活动 99
9.7 小测验 99
第10小时 创建第一个对象 101
10.1 面向对象的程序设计的工作方式 101
10.2 活动的对象 102
10.3 对象的概念 103
10.4 理解继承 104
10.5 建立一个继承层次结构 104
10.6 练习:创建一个对象 105
10.7 小结 107
10.8 问题和答案 107
10.9 小测验 107
10.10 课外活动 108
第11小时 对象的描述 109
11.1 创建变量 110
11.2 创建类变量 111
11.3 创建带有方法的行为 111
11.3.1 声明方法 112
11.3.2 带有不同变元的相似方法 113
11.3.3 构造函数的方法 113
11.3.4 类方法 114
11.3.5 方法内变量的作用域 114
11.5 练习:使用类方法和变量 115
11.4 使用this关键词 115
11.6 小结 116
11.7 问题和答案 117
11.8 小测验 117
11.9 课外活动 118
第12小时 从其它类中继承方法 119
12.1 继承的能力 119
12.1.1 继承行为和属性 120
12.1.2 覆盖方法 120
12.2 建立继承 121
12.3 练习:创建一个子类 121
12.4 小结 123
12.6 小测验 124
12.5 问题和答案 124
12.7 课外活动 125
第四部分 为World Wide Web创建Applet 129
第13小时 理解Applet的工作方式 129
13.1 标准的Applet()方法 129
13.1.1 paint()方法 130
13.1.2 init()方法 130
13.1.4 destroy()方法 131
13.2 在Web页面中放置一个applet 131
13.1.3 start()方法和stop()方法 131
13.3 一个样本applet 132
13.3.1 使用drawString()方法 132
13.3.2 测试BigDebtApplet程序 133
13.4 练习:改进BigDebtApplet项目 134
13.5 小结 135
13.6 问题和答案 136
13.7 小测验 136
13.8 课外活动 137
第14小时 创建多线程applet 139
14.1 循环式链接applet 139
14.1.2 建立变量 140
14.1.1 类声明 140
14.2 以init()开始 141
14.3 建立URL时捕获错误 142
14.4 用paint()方法进行屏幕更新 143
14.5 启动线程 143
14.5.1 运行线程 144
14.5.2 终止线程 144
14.6 处理鼠标单击 145
14.7 练习:循环链接 145
14.8 小结 148
14.10 小测验 149
14.9 问题和答案 149
14.11 课外活动 150
第15小时 给applet传送参数 151
15.1 从Web页面传送参数 151
15.2 在applet中接受参数 152
15.3 练习:在一个applet中处理参数 152
15.4 小结 154
15.5 问题和答案 154
15.6 小测验 154
15.7 课外活动 155
16.1 使用Font类 157
第16小时 在applet中使用字体和颜色 157
16.2 使用Color类 158
16.3 选择颜色的其它方法 159
16.4 练习:显示一条危险消息 160
16.5 小结 164
16.6 问题和答案 164
16.7 小测验 164
16.8 课外活动 165
第17小时 用Java绘制图形 169
17.1 在applet中使用图形 169
第五部分 改善程序的外观 169
17.2 画线和其他几何图形 170
17.2.1 画线 170
17.2.2 画矩形 171
17.2.3 画椭圆和圆 171
17.2.4 画多边形 171
17.2.5 创建JavaMan 172
17.3 练习:画出引人注目的肖像 173
17.4 小结 176
17.5 问题和答案 176
17.6 小测验 176
17.7 课外活动 177
18.1 创建一个动画标识applet 179
第18小时 创建动画 179
18.1.1 避免动画闪烁 181
18.1.2 加载和显示图像 181
18.1.3 保存一组图像 182
18.2 传送参数给applet 182
18.3 练习:跟随跳动的球 184
18.3.1 画图像 186
18.3.2 画到隐藏屏幕上 187
18.4 小结 187
18.6 小测验 188
18.5 问题和答案 188
18.7 课外活动 189
第19小时 建立一个简单的用户界面 191
19.1 抽象窗口工具包 191
19.2 使用组件 192
19.2.1 标签和文本域 192
19.2.2 复选框 193
19.2.3 选择列表 194
19.2.4 文本区 194
19.3 使用布局管理器 194
19.3.1 GridLayout管理器 196
19.3.2 BorderLayout管理器 197
19.4 练习:布置一个applet 198
19.5 小结 202
19.6 问题和答案 202
19.7 小测验 202
19.8 课外活动 203
第20小时 响应用户事件 205
20.1 使程序能够监听事件 205
20.2 建立将被监听的组件 206
20.3 处理用户事件 206
20.3.2 其它的文本域事件 207
20.3.1 复选框和选择事件 207
20.3.3 使组件有效和无效 208
20.4 练习:一个小的Lotto Madness程序 208
20.5 小结 215
20.6 问题和答案 215
20.7 小测验 215
20.8 课外活动 216
第六部分 编程技巧的实际运用 219
第21小时 用Java玩游戏 219
21.1 掷骰子游戏 219
21.2 组织程序 220
21.3 创建一个Die类 221
21.3.1 设置初始值 221
21.3.2 滚动骰子 221
21.3.3 画骰子 222
21.4 测试Die类 225
21.5 小结 225
21.6 问题和答案 226
21.7 小测验 226
21.8 课外活动 227
22.1 创建一个applet 229
第22小时 编写Web上的游戏程序 229
22.2 创建要使用的变量 230
22.3 设置变量和初始化显示 231
22.4 显示文本和图形 231
22.5 处理用户输入 233
22.6 检查滚动结果并且保存得分 233
22.7 把程序放到页面上 236
22.8 小结 237
22.9 问题和答案 237
22.10 小测验 237
22.11 课外活动 238
23.1 Pan applet 239
第23小时 为Web页面增加趣味 239
23.2 显示图像 240
23.3 练习:画一幅超出屏幕边缘的图像 241
23.4 小结 244
23.5 问题和答案 245
23.6 小测验 245
23.7 课外活动 246
第24小时 增加知识 247
24.1 计算类 247
24.2 创建界面 248
24.3 响应用户事件 251
24.6 小结 254
24.4 解决问题 254
24.5 验证程序 254
24.7 问题和答案 255
24.8 小测验 255
24.9 课外活动 256
第七部分 附录 259
附录A 附录A Java的资源 259
A.1 值得考虑的一些其它书籍 259
A.2 JavaSoft站点 260
A.3.2 Gamelan的Java目录 261
A.3 其它Java Web站点 261
A.3.1 Java书籍页面 261
A.3.3 Java applet的有偿服务 262
A.3.4 Java World杂志 262
A.3.5 Java常见问题(FAQ) 262
A.4 Java新闻组 263
A.5 工作机会 263
附录B Java编程工具 265
B.1 选择开发软件 266
B.1.1 图形界面设计工具 266
B.1.2 编写完全可移植的Java程序 266
B.1.5 了解IDE的意义 267
B.1.3 使用其它IDE的经验 267
B.1.4 多种语言共用一个IDE 267
B.2 Rogue Wave JFactory 268
B.2.1 系统需求 268
B.2.2 综述 269
B.2.3 价格和附加信息 269
B.3 Symantec Cafe 269
B.3.1 系统需求 270
B.3.2 综述 270
B.4 SunSoft Java WorkShop 271
B.3.3 价格和附加信息 271
B.4.2 综述 272
B.4.1 系统需求 272
B.4.3 价格和附加信息 273
B.5 SourceCraft NetCraft 273
B.5.1 系统需求 273
B.5.2 综述 273
B.5.3 价格和附加信息 274
B.6.1 系统需求 275
B.6.2 概述 275
B.6 Pro-C WinGEN for Java 275
B.6.3 价格和附加信息 276
B.7 其它 276
B.7.1 Borland C++ 5.0 with Java Enhancements 276
B.7.2 Metro Werks Code Warrior 276
B.7.3 Kalimantan 277
B.7.4 Natural Intelligence Roaster 277
B.7.5 Microsoft Visual j++ 277
B.8 小结 277
附录C 本书的Web站点 279
附录D 词汇表 281