第1章 走进Java程序 1
1.1 Java概述 1
1.2 面向对象编程 1
1.2.1 对象的定义 2
1.2.2 类的概念 2
1.2.3 UML简介 3
1.3 J2SDK简介 3
1.3.1 认识J2SDK 4
1.3.2 J2SDK下载 4
1.3.3 JDK的安装 4
1.3.4 测试安装 5
1.3.5 JDK的配置 6
1.3.6 理解CLASSPATH和SOURCEPATH 8
1.4 项目任务1:使用命令行开发Java程序 9
1.4.1 编辑源文件 10
1.4.2 使用JavaC编译源文件 12
1.4.3 使用Java命令运行程序 12
1.4.4 使用classpath 13
1.5 Java集成开发工具简介 13
1.6 项目任务2:使用Eclipse开发Java应用程序 14
1.6.1 Eclipse多语言包的安装 14
1.6.2 使用Eclipse IDE开发Java应用程序 15
1.6.3 相关配置 16
1.7 项目任务3:管理代码 17
1.7.1 使用sourcepath 18
1.7.2 package包管理机制 18
1.7.3 import导入机制 20
1.8 自测题 22
第2章 Java语法基础 25
2.1 Java数据类型 26
2.1.1 标识符 26
2.1.2 Java关键字 27
2.1.3 Java基本数据类型 27
2.1.4 变量 28
2.1.5 引用变量 28
2.1.6 区分基本类型变量和引用变量 29
2.1.7 变量的赋值 30
2.1.8 类型转换 31
2.2 项目任务4:定义变量 32
2.2.1 整型类型 33
2.2.2 浮点数类型 34
2.2.3 布尔类型 35
2.2.4 字符数据类型 36
2.2.5 字符串 38
2.3 项目任务5:生成随机价格 41
2.4 Java操作符 42
2.4.1 自增/自减操作符 43
2.4.2 复合赋值操作符 44
2.4.3 移位操作符 44
2.4.4 布尔逻辑 45
2.4.5 布尔操作符 46
2.4.6 关系运算符 48
2.4.7 三元运算符 48
2.5 Java注释语句 49
2.6 项目任务6:价格比较 49
2.6.1 if语句 50
2.6.2 switch语句 53
2.6.3 while循环 54
2.6.4 do/while循环 55
2.6.5 for循环 56
2.6.6 break关键字 57
2.6.7 continue关键字 58
2.6.8 嵌套循环 59
2.7 项目任务7:猜测次数统计 60
2.7.1 静态变量 60
2.7.2 常量 61
2.7.3 变量的作用域和生命周期 61
2.8 自测题 64
第3章 Java面向对象基础 67
3.1 对象和实例 67
3.2 使用UML设计类 67
3.3 类的定义 68
3.4 实例变量 69
3.5 项目任务8:添加类的属性 70
3.6 项目任务9:创建类的实例 70
3.7 方法 72
3.7.1 方法的定义 72
3.7.2 方法的调用 73
3.7.3 方法的调用栈 73
3.7.4 静态方法 75
3.7.5 程序代码的调试 76
3.7.6 递归方法 76
3.7.7 汉诺塔问题 77
3.8 构造方法 79
3.8.1 默认构造方法 79
3.8.2 对象初始化 81
3.8.3 自定义构造方法 82
3.8.4 方法重载 82
3.9 项目任务10:添加类的构造方法 82
3.10 实现方法 84
3.11 项目任务11:实现类的方法 86
3.12 访问权限 86
3.13 项目任务12:限定数值范围 87
3.14 项目任务13:代码重构 89
3.15 实现tick方法 92
3.15.1 Timer和TimerTask 93
3.15.2 内部类和匿名内部类 93
3.16 项目任务14:时钟功能的实现 95
3.17 自测题 97
第4章 继承和多态 100
4.1 项目背景简介 100
4.2 类间关系 100
4.3 数组 102
4.3.1 访问数组 103
4.3.2 引用数组 104
4.3.3 数组初始化 105
4.3.4 多维数组 105
4.3.5 数组类 107
4.4 ArrayList 108
4.5 项目任务15:学生注册代码实现 108
4.6 枚举 109
4.7 项目任务16:使用枚举重构 111
4.8 继承和多态 112
4.8.1 继承的概念 112
4.8.2 多态与is-a 115
4.8.3 重新定义行为 117
4.8.4 抽象方法和抽象类 119
4.8.5 终止继承 120
4.8.6 java.lang.Object 120
4.9 接口 122
4.9.1 如何创建接口 123
4.9.2 实现接口 123
4.9.3 接口的用途 124
4.9.4 项目任务17:计分策略 125
4.10 集合 131
4.10.1 集合接口 131
4.10.2 Iterator接口和迭代器 132
4.10.3 List 133
4.10.4 Set 135
4.10.5 Map 136
4.10.6 散列表 137
4.10.7 项目任务18:Map使用示例 138
4.11 包装类 140
4.12 自测题 142
第5章 异常 149
5.1 使用异常处理机制消除程序错误 149
5.2 异常的定义 150
5.3 异常处理 152
5.4 异常分类 153
5.5 创建自己的异常 154
5.5.1 正则表达式 154
5.5.2 项目任务19:自定义非检查异常 157
5.5.3 项目任务20:自定义检查异常 159
5.6 更多的异常处理 160
5.7 自测题 161
第6章 图形 165
6.1 SWT/JFace简介 165
6.2 SWT/JFace常用组件 166
6.2.1 按钮组件 166
6.2.2 标签组件 167
6.2.3 文本框组件 168
6.2.4 组合框组件 170
6.2.5 列表框组件 172
6.2.6 菜单 173
6.3 布局管理 176
6.3.1 布局数据 176
6.3.2 填充式布局 177
6.3.3 行布局 177
6.3.4 网格布局 177
6.3.5 网格布局数据 178
6.3.6 表单布局 180
6.4 SWT应用程序工作原理 184
6.5 SWT事件处理 185
6.6 几种常见事件处理写法 186
6.6.1 匿名内部类写法 187
6.6.2 命名内部类写法 187
6.6.3 外部类写法 187
6.6.4 实现监听接口的写法 188
6.7 项目任务21:完成猜价格游戏 188
6.7.1 制作猜价格游戏主界面 188
6.7.2 添加主菜单 190
6.7.3 添加菜单项Action 190
6.7.4 处理SWT事件 191
6.7.5 制作游戏参数配置界面 198
6.8 项目任务22:完成SWT时钟程序 206
6.8.1 导出JAR文件 207
6.8.2 添加JAR引用 208
6.8.3 创建App主窗口程序 208
6.8.4 制作批处理启动的JAR应用程序 214
6.9 自测题 217
第7章 Java I/O 219
7.1 Java.io包简介 219
7.2 流的相关概念 219
7.3 流的分类 220
7.4 字节流的层次架构 220
7.4.1 标准输入/输出流 221
7.4.2 FileInputStream与FileOutputStream 222
7.4.3 ByteArrayInputStream与ByteArrayOutputStream 224
7.5 字符流的层次架构 225
7.6 转换流 226
7.7 数据流 227
7.8 Object流 228
7.9 文件 229
7.9.1 创建文件 229
7.9.2 删除文件 231
7.9.3 使用临时文件 232
7.9.4 项目任务23:学生名单 233
7.9.5 随机RandomAccessFile 235
7.9.6 项目任务24:访问和修改学生名单 238
7.10 自测题 243
第8章 多线程 245
8.1 多线程简介 245
8.1.1 线程的概念 246
8.1.2 创建线程 246
8.1.3 结束线程 247
8.1.4 线程的生命周期 247
8.1.5 线程的同步 250
8.1.6 线程的常用API 254
8.1.7 项目任务25:龟兔赛跑 254
8.1.8 项目任务26:添加新选手 258
8.2 多线程小结 259
8.3 自测题 259
第9章 综合案例——微波炉模拟程序 261
9.1 微波炉仿真项目简介 261
9.2 程序UI界面设计 262
9.3 根据程序状态编写程序 270
9.3.1 状态分析 270
9.3.2 使用事件源-监听器模型 271
9.3.3 实现事件/监听 271
9.3.4 添加烹煮完成的音效 284
9.3.5 添加美食图像 286
参考文献 288