第1章 第1天课程:21世纪的Java 3
第一部分 第1周课程:Java的基本概念 3
1.1 探索Java2 4
1.1.1 Java的过去、现在和未来 4
1.1.2 交互式Web编程 4
1.1.3 Java来自小型的Oak语言 6
1.1.4 Java语言的版本 7
1.1.5 Java的前景 7
1.2 选择Java的原因 8
1.2.1 面向对象 8
1.2.2 易于学习 8
1.2.3 平台无关性 9
1.3.1 选择Java开发工具 10
1.3 进入Java编程 10
1.3.2 安装软件开发工具包 11
1.4 第1个Java程序 15
1.4.1 创建源文件 16
1.5 小结 19
1.6 问题和解答 20
1.7 小测验 20
1.7.1 问题 20
1.7.2 答案 21
1.8 练习 21
第2章 第2天课程:面向对象编程 22
2.1 以对象的形式思考 22
11.5 练习 23
2.2 对象和类 23
2.2.1 对象重用 24
2.3.1 对象的类的属性 25
2.3 属性和行为 25
2.3.2 对象的类的行为 26
2.3.3 创建类 27
2.3.4 运行程序 28
2.4 组织类和类行为 31
2.4.1 继承 31
2.4.2 创建类层次结构 32
2.4.3 继承性的使用 34
2.4.4 单重继承和多重继承 35
2.5 小结 36
2.4.6 包 36
2.4.5 接口 36
2.6 问题和解答 37
2.7 小测验 38
2.7.1 问题 38
2.7.2 答案 38
2.8 练习 38
第3章 第3天课程:Java基础 39
3.1 语句和表达式 39
3.2 变量和数据类型 40
3.2.1 创建变量 41
3.2.3 变量类型 42
3.2.4 数据类型 42
3.2.2 命名变量 42
3.2.5 类的类型 43
3.2.7 常量 44
3.2.6 变量赋值 44
3.3 注释 45
3.4 文字 45
3.4.1 数字文字 46
3.4.2 布尔文字 47
3.4.3 字符文字 47
3.4.4 字符串文字 47
3.5 表达式和运算符 48
3.5.1 算术运算 49
3.5.2 赋值的更多内容 50
3.5.3 加1和减1 51
3.5.4 比较 52
3.5.5 逻辑运算符 53
3.5.6 运算符优先级 54
3.6 字符串算术运算 55
3.7 小结 56
3.8 问题和解答 57
3.9 小测验 57
3.9.1 问题 57
3.9.2 答案 57
3.10 练习 58
4.1 创建新对象 59
第4章 第4天课程:使用对象 59
4.1.1 使用new 60
4.1.3 内存管理说明 61
4.1.2 new的功能 61
4.2 访问并设置类和实例变量 62
4.2.1 获得值 62
4.2.2 修改值 62
4.2.3 类变量 63
4.3 调用方法 64
4.3.1 嵌套方法调用 65
4.3.2 类方法 66
4.4 引用对象 67
4.5 强制转换及转换对象和原始类型 68
4.5.1 原始类型的强制转换 69
4.5.2 对象的强制转换 70
4.5.3 原始类型转换为对象及相反过程 71
4.6 比较对象值和类 72
4.6.1 比较对象 72
4.6.2 确定对象的类 73
4.7 小结 74
4.8 问题和解答 74
4.9 小测验 75
4.9.1 问题 75
4.9.2 答案 75
4.10 练习 75
5.1 数组 76
第5章 第5天课程:列表、逻辑和循环 76
5.1.1 声明数组变量 77
5.1.2 创建数组对象 77
5.1.3 访问数组元素 78
5.1.4 修改数组元素 79
5.1.5 多维数组 80
5.2 块语句 81
5.3 if条件 82
5.4 switch条件 83
5.5 for循环 87
5.6 while和do循环 89
5.6.1 while循环 89
5.7 跳出循环 91
5.6.2 do...while循环 91
5.7.1 标记循环 92
5.7.2 条件运算符 92
5.8 小结 93
5.9 问题和解答 93
5.10 小测验 94
5.10.1 问题 94
5.10.2 答案 94
5.11 练习 95
第6章 第6天课程:创建类和方法 96
6.1 定义类 96
6.2.2 类变量 97
6.2.1 定义实例变量 97
6.2 创建实例和类变量 97
6.3 创建方法 98
6.3.1 定义方法 98
6.3.2 this关键字 99
6.3.3 变量作用域和方法定义 100
6.3.4 参数传递给方法 101
6.3.5 类方法 102
6.4 创建Java应用程序 103
6.4.1 辅助类 104
6.5 Java应用程序和命令行参数 104
6.5.1 向Java应用程序传递参数 105
6.5.2 在Java应用程序中处理参数 105
6.6 创建名称相同、参数不同的方法 106
6.7 构造函数方法 109
6.7.1 基本构造函数方法 110
6.7.2 调用另一个构造函数方法 110
6.7.3 重载构造函数方法 111
6.8 重载方法 112
6.8.1 创建重载现存方法的方法 113
6.8.2 调用初始方法 114
6.8.3 重载构造函数 114
6.9 终结方法 116
6.10 小结 116
6.11 问题和解答 117
6.12 小测验 117
6.12.1 问题 117
6.12.2 答案 118
6.13 练习 118
7.1 小程序与应用程序的区别 119
第7章 第7天课程:编写Java小程序 119
7.2 小程序安全限制 120
7.2.1 选择Java版本 120
7.3 创建小程序 121
7.3.1 主要的小程序活动 122
7.3.2 示例小程序 125
7.4 网页上包含小程序 127
7.4.1
7.5
7.4.2 测试结果 128
7.4.3 在Web上安排小程序 129
7.5.1 ALIGN 129
7.5.2 HSPACE和VSPACE 130
7.5.3 CODE和CODEBASE 131
7.5.4
7.6 Java存档 132
7.7 向小程序传递参数 133
7.8 开发Java2小程序 136
7.8.1 在网页上使用Plug-in 136
7.8.2 运行Plug-in 138
7.9 小结 139
7.10 问题和解答 139
7.10.1 问题 140
7.10.2 解答 140
7.11 练习 141
第二部分 第2周课程:Swing和其他可视化Java编程 145
第8章 第8天课程:使用Swing 145
8.1 创建应用程序 145
8.1.1 创建接口 146
8.1.2 开发框架 148
8.1.3 关闭窗口 150
8.1.4 创建组件 152
8.1.5 在容器中添加组件 152
8.1.6 在小程序中添加组件 154
8.2 使用组件 155
8.2.1 图像图标 155
8.2.2 标签 156
8.2.3 文本域 157
8.2.4 文本区域 158
8.2.5 滚动窗格 159
8.2.6 滚动条 159
8.2.7 复选框和单选按钮 160
8.2.8 下拉列表和组合框 162
8.3 小结 163
8.4.1 问题 164
8.4.2 解答 164
8.4 问题和解答 164
8.5 练习 165
第9章 第9天课程:建立Swing接口 166
9.1 Swing的特征 166
9.1.1 设置外观和感觉 166
9.1.2 标准对话框 167
9.1.3 示例:Info应用程序 171
9.1.4 滑块 173
9.1.5 滚动窗格 174
9.1.6 工具栏 175
9.1.7 进度条 177
9.2 小结 179
9.3 问题和解答 179
9.3.1 问题 179
9.3.2 答案 180
9.4 练习 180
第10章 第10天课程:在用户界面上安排组件 181
10.1 基本界面布局 181
10.1.1 安排界面 181
10.1.2 流动布局 182
10.1.3 网格布局 184
10.1.4 边界布局 185
10.2 混合布局管理器 186
10.3 卡片布局 187
10.4 网格袋布局 188
10.4.1 设计网格 189
10.4.2 创建网格 190
10.4.3 确定比例 192
10.4.4 添加和安排组件 194
10.4.5 调整 195
10.5 单元填充和边距 197
10.6 小结 198
10.7 问题和解答 198
10.7.1 问题 199
10.7.2 答案 199
10.8 练习 199
第11章 第11天课程:响应用户输入 201
11.1 事件监听器 201
11.1.1 设置组件 202
11.1.2 事件处理方法 203
11.2 使用方法 205
11.2.1 动作事件 205
11.2.2 调整事件 206
11.2.3 焦点事件 206
11.2.4 项目事件 208
11.2.5 按键事件 209
11.2.6 鼠标事件 210
11.2.7 鼠标移动事件 211
11.2.8 窗口事件 211
11.2.9 实例:RGB到HSB的转换器 212
11.2.10 设计布局 212
11.2.11 定义子面板 214
11.2.12 在sRGB和HSB之间转换 216
11.2.13 处理用户事件 218
11.3 小结 222
11.4 问题和解答 222
11.4.1 问题 222
11.4.2 答案 223
第12章 第12天课程:颜色、字体和图形 224
12.1 图形类 224
12.2 创建绘图接口 225
12.2.1 转换Graphics2D对象 225
12.2.2 创建应用程序 225
12.2.3 图形坐标系统 227
12.3 绘图和填充 227
12.3.1 线条 228
12.3.2 矩形 228
12.3.3 多边形 229
12.3.4 椭圆形 231
12.3.5 圆弧 231
12.3.6 复制和清除 234
12.4 文本和字体 235
12.4.1 创建Font对象 235
12.4.2 绘制字符和字符串 235
12.4.3 查找字体信息 236
12.5 颜色 237
12.5.1 使用Color对象 238
12.5.2 测试和设置当前颜色 238
12.6 使用Java2D的高级图形操作 239
12.6.1 用户和设备坐标空间 240
12.6.2 指定渲染属性 240
12.6.3 创建要绘制的对象 243
12.6.5 2D绘图示例 245
12.6.4 绘制对象 245
12.7 小结 247
12.8 问题和解答 248
12.8.1 问题 248
12.8.2 答案 248
12.9 练习 249
第13章 第13天课程:线程和动画 250
13.1 在Java中创建动画 250
13.1.1 绘图和重新绘图 251
13.1.2 动画显示组件 251
13.1.3 通过线程控制动画 255
13.1.4 编写线程程序 255
13.1.5 使用线程的时钟应用程序 256
13.1.6 停止线程 258
13.2.1 得到图像 261
13.2 检索和使用图像 261
13.2.2 绘制图像 262
13.2.3 图像观察器 263
13.3 使用图像创建动画 263
13.3.1 Pixel Pete 263
13.3.2 跟踪图像加载 272
13.4 小结 273
13.5 问题和解答 273
13.5.1 问题 274
13.5.2 答案 274
13.6 练习 274
第14章 第14天课程:JavaSound 275
14.1 检索和使用声音 275
14.2 JavaSound 278
14.2.1 MIDI文件 278
14.2.2 播放MIDI文件 278
14.2.3 处理声音文件 283
14.3 小结 287
14.4 问题和解答 288
14.4.1 问题 288
14.4.2 答案 288
14.5 练习 289
第三部分 第3周课程:Java高级功能 293
第15章 第15天课程:包、接口和其他类功能 293
15.1 修饰符 293
15.1.1 方法和变量的访问控制 294
15.2 静态变量和方法 298
15.3 final类、方法和变量 300
15.3.1 变量 300
15.3.2 方法 301
15.3.3 类 301
15.5 包 302
15.4 抽象类和方法 302
15.6 使用包 303
15.6.1 完整包和类名称 303
15.6.2 import声明 304
15.6.3 名称冲突 304
15.6.4 CLASSPATH和类的位置 305
15.7 创建包 305
15.7.1 挑选包名称 305
15.7.2 创建文件夹结构 306
15.7.3 在包中添加类 306
15.7.4 包和类访问控制 306
15.8 接口 307
15.8.1 单继承问题 307
15.8.2 接口和类 308
15.8.3 实现和使用接口 308
15.8.4 实现多个接口 309
15.8.5 接口的其他用途 310
15.9 创建和扩展接口 311
15.9.1 新接口 311
15.9.2 接口内的方法 312
15.9.3 扩展接口 312
15.9.4 创建在线Storefront程序 313
15.10 内部类 318
15.11 小结 320
15.12 问题和解答 320
15.12.1 问题 320
15.12.2 答案 321
15.13 练习 321
第16章 第16天课程:错误处理和安全性 322
16.1 异常——陈旧而令人费解的方法 322
16.2 Java异常 324
16.3.2 保护代码和捕获异常 325
16.3 管理异常 325
16.3.1 异常一致性检查 325
16.3.3 finally子句 327
16.4 声明引发异常的方法 329
16.4.1 throws子句 329
16.4.2 引发哪个异常 330
16.4.3 传递异常 330
16.4.4 thorws和继承 331
16.5 创建和引发异常 332
16.5.1 引发异常 332
16.5.2 创建异常 332
16.5.3 组合throws、try和throw 333
16.6 确定使用异常的时机 334
16.6.1 何时使用异常 334
16.6.2 何时不使用异常 334
16.7 用数字签名标识小程序 335
16.6.3 使用异常的糟糕样式 335
16.7.1 数字签名示例 336
16.7.2 浏览器的特定签名 337
16.7.3 安全规则 338
16.8 小结 338
16.9 问题和解答 339
16.9.1 问题 339
16.9.2 答案 340
16.10 练习 340
第17章 第17天课程:通过Java流处理数据 341
17.1 流的基础知识 341
17.1.1 使用流 342
17.1.2 过滤流 342
17.2.1 文件流 343
17.2.2 文件输入流 343
17.2 字节流 343
17.2.3 文件输出流 345
17.3 过滤流 347
17.3.1 字节过滤器 347
17.4 字符流 353
17.4.1 读取文本文件 353
17.4.2 写入文本文件 355
17.5 文件和文件名过滤器 356
17.6 小结 358
17.7 问题和解答 359
17.7.1 问题 359
17.7.2 答案 359
17.8 练习 360
第28章 第18天课程:对象串行化和反射 361
18.1 对象串行化 361
18.1.1 对象输出流 362
18.1.2 对象输入流 365
18.1.3 过渡变量 367
18.2 用反射检测类和方法 367
18.2.1 检测和创建类 368
18.2.2 使用类的每部分 369
18.2.3 检测类 370
18.3 远程方法调用 373
18.3.1 RMI体系结构 374
18.3.2 创建RMI应用程序 375
18.3.3 RMI和安全性 378
18.4 小结 379
18.5 问题和解答 379
18.5.1 问题 380
18.5.2 答案 380
18.6 练习 380
19.1 Java连网 381
第19章 第19天课程:跨越Internet通信 381
19.1.1 在小程序内创建链接 382
19.1.2 打开Web连接 384
19.1.3 通过Net打开流 385
19.1.4 套接口 388
19.1.5 套接口服务器 391
19.1.6 设计服务器应用程序 391
19.1.7 实现服务器 392
19.1.8 测试服务器 401
19.2 小结 402
19.3 问题和解答 402
19.3.1 问题 403
19.3.2 答案 403
9.4 练习 404
第20章 第20天课程:使用JavaBeans 405
20.1 可重用软件组件 405
20.1.1 JavaBeans的目标 406
20.1.2 JavaBeans和Java的关系 407
20.1.3 JavaBeans API 407
20.2 开发工具 408
20.2.1 JavaBeans Development Kit 409
20.3 使用JavaBeans 410
20.3.1 Bean容器 410
20.3.2 放置Bean 411
20.3.3 调整bean属性 412
20.3.4 在Beans之间创建交互 413
20.3.5 创建JavaBeans程序 415
20.3.6 使用其他JavaBeans 416
20.4 小结 416
20.5 问题和解答 417
20.5.1 问题 417
20.6 练习 418
20.5.2 答案 418
第21章 第21天课程:Java数据库连接和数据结构 419
21.1 Java数据库连接 419
21.1.1 数据库驱动程序 420
21.1.2 JDBC——ODBC桥 421
21.1.3 连接到ODBC数据源 422
21.1.4 JDBC驱动程序 426
21.2 数据结构 428
21.3 Java数据结构 429
21.3.1 Iterator 430
21.3.2 BitSet 430
21.3.3 Vector 432
21.3.4 Stack 434
21.3.5 Map 436
21.3.6 Hashtable 437
21.4 小结 438
21.5.2 答案 439
21.5 问题和解答 439
21.5.1 问题 439
21.6 练习 440
附录A 配置SDK 441
A.1 使用命令行接口 441
A.1.1 在MS-DOS中打开文件夹 442
A.1.2 在MS-DOS中创建文件夹 443
A.1.3 在MS-DOS内运行程序 444
A.2 配置SDK 445
A.2.1 设置PATH命令 445
A.2.2 设置CLASSPATH命令 446
A.3 UNIX配置 448
A.3.1 解决其他平台上的Class Not Found错误 448
附录B 在SDK中使用文本编辑器 450
B.1 选择文本编辑器 450
B.2 在Windows中创建文件关联 451
B.2.1 删除现存的文件关联 452
B.2.2 创建新关联 453
B.2.3 建立图标和文件类型的关系 453
附录C SDK 455
C.1 SDK概述 455
C.2 java解释程序 456
C.3 javac编译器 457
C.4 appletviewer浏览器 458
C.5 javadoc文档说明工具 462
C.6 jdb调试程序 465
C.6.1 调试应用程序 465
C.6.2 调试小程序 467
C.6.3 高级调试命令 467
C.7 使用系统属性 468
C.8 小结 469
C.9 问题和解答 470