标题：学通Java的24堂课
图书信息
学通Java的24堂课 明日科技 李钟尉、李伟 编著 　　ISBN 9787302255413  　　2011年6月出版 定价：79.80元含（含光盘1张） 　　16开
内容简介
本书以24堂课的形式，从初中级用户的角度进行科学合理的设计，全面讲述了使用Java语言进行程序开发的必备知识和技能，突出学、练、用结合。主要内容包括Java概述、使用IDE集成开发工具、Java语言基础知识、流程控制语句、数组应用、面向对象编程、字符串处理、类的继承与多态特性、其他类特性与异常处理、Swing编程基础、多线程编程、事件处理的应用、常用工具类、常用集合类、数据库编程应用、输入输出流与文件、网络程序设计、表格控件的应用、树控件的应用、其他高级控件、图形绘制技术、进销存管理系统、企业内部通讯管理系统、图书馆管理系统。
本书适合有志于从事软件开发的初学者、高校计算机相关专业的学生和毕业生，也适合作为软件开发人员的参考手册或者高校的教学参考书。
本书通过教学视频、实例训练、综合应用、项目实践、自我测试、行动指南逐步深入和强化训练等方式，并辅之以心理励志，来持续激发读者主动学习、自发学习。
本书给出了377个小型实例，206个综合应用，6个项目案例（部分在光盘中），各类技巧、试验200余个，测试题目210个，以方便读者训练、测试和快速提升。
本书DVD光盘给出了120集（358段）多媒体教学视频讲解，每个实例都给出了相应的源程序，可直接复制源码学习或应用。
前言
前  言
Java是Sun公司推出的能够跨越多平台的、可移植性最高的一种面向对象的编程语言，也是目前最先进、特征最丰富、功能最强大的计算机语言。Java自从面世以来一直以易学易用、功能强大的特点得到广泛的应用，其强大的跨平台特性使Java程序可以运行在任何一个系统平台上，甚至是手持电话、商务助理等电子产品，都可以运行Java程序，真正做到“一次编写，到处运行”。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等，这使得Java成为应用范围最广阔的开发语言。
本书内容
学、练、用到精通只需24堂课。本书从初中级用户的角度进行科学合理的设计，通过24堂课全面地讲述了使用Java语言进行程序开发所必备的知识和技能，如下图所示。
第1部分  基础篇（第1～第7堂课）：讲述了Java概述、使用IDE集成开发工具、Java语言基础知识、流程控制语句、数组应用、面向对象编程、字符串处理。这些都是程序语言的基础，学通了这些内容后，再学其他篇相信一定会很简单。
第2部分  提高篇（第8～第14堂课）：讲述了使用Visual Basic 6.0进行应用程序开发的各种常用技术，包括类的继承与多态特性、其他类特性与异常处理、Swing编程基础、多线程编程、事件处理的应用、常用工具类、常用集合类。通过本篇的学习，读者能够开发小型应用程序，掌握面向对象的高级特性、学会任务多线程处理和使用集合对象保存数据等。
第3部分  高级篇（第15～第21堂课）：讲述了数据库编程应用、输入输出流与文件、网络程序设计、表格控件的应用、树控件的应用、其他高级控件、图形绘制技术。通过本篇的学习，读者可以实现文件操作、图形图像处理、开发小型网络程序和数据库应用程序。
第4部分  实战篇（第22～第24堂课）：讲述了进销存管理系统、企业内部通讯管理系统和图书馆管理系统3个完整的项目实例设计全过程，积累项目开发经验。
本书特点
* 配备120集（358段）多媒体教学视频讲解。
本书DVD光盘提供了覆盖全书的语音视频讲解，读者可以通过视频快速、直观、轻松地学习。
* 每一堂课都结合“照猫画虎”、“情景应用”。
为了增强读者的动手能力，并激发学习兴趣，本书提供了“照猫画虎”和“情景应用”栏目，根据实例模仿着去做是学习编程的最快方式。
* 每一堂课都结合励志故事和“行动指南”，时刻进行激励和鼓舞。
我们认为学习中尤其是最初的一段时间非常有必要不断地对学习者进行激励和鼓舞，让他们坚持下来是至关重要的，因此在书中不间断地用一些励志故事和行动指南鼓舞其信心。
* 光盘提供了本书的所有代码，即使只有一行。
本书光盘不仅提供了所有实例的源程序，还提供了书中所有示例的源代码，哪怕只有一行。读者可以直接复制，以提高学习效率。
* 本书所有习题和实战都给出了答案，部分习题还有解析，读者可以对照查阅。
读者对象
? 有志于软件开发的初学者    ? 高等院校计算机相关专业的老师和学生  
? 准备从事软件开发的求职者          ? 参与毕业设计的学生    
? 初中级程序开发人员                ? 程序测试及维护人员   
本书作者
本书由明日科技组织编写，参加编写的程序员有李钟尉、李伟、王国辉、赛奎春、潘凯华、刘欣、李慧、陈丹丹、高春艳、孙秀梅、杨丽、刘玲玲、朱晓、刘燕、陈英、李鑫、李贺、肖鑫、张丽娜、沈博、刘冠男、曹飞飞、李丽、聂喜婷、王明昭、张英豪、王小科、赵会东、白伟明等。
由于水平有限，书中疏漏和不足之处在所难免，恳请广大读者朋友批评指正。
最后，感谢您选择本书，希望本书能成为您编程路上的领航者。
祝读书快乐！
特别提醒：
亲爱的读者朋友，由于近期纸张价格和印制成本大幅上涨，为不增加读者朋友的负担，又不减少书的内容，本书的最后几章内容不得不放在配书光盘中（参见目录），由此给您带来了不便，在此深表歉意。
编  者
学通Java的24堂课
目录
目  录
第1部分  基础篇
第1堂课  Java概述 3
视频讲解：31分钟
1.1  Java简介 4
1.1.1  Java发展历史 4
1.1.2  Java的几个版本 5
1.1.3  Java应用领域 6
1.1.4  Java项目成功案例 6
1.1.5  怎样学好Java 8
1.2  环境搭建 8
1.2.1  JDK下载 8
1.2.2  JDK安装 10
1.2.3  配置环境变量 11
1.3  编写第一个Java程序 14
1.3.1  在记事本中输入代码 14
1.3.2  保存代码为源代码文件 15
1.3.3  编译并运行Java文件 16
1.4  照猫画虎——基本功训练 16
1.4.1  基本功训练1——更换JAVA_HOME
环境变量 16
1.4.2  基本功训练2——提取Path变量值
创建新环境变量 17
1.4.3  基本功训练3——输出字符表情 17
1.4.4  基本功训练4——输出“*”字符组成的
三角形 18
1.5  情景应用——拓展与实践 19
1.5.1  情景应用1——计算两个整数的和 19
1.5.2  情景应用2——输出当前日期 19
1.5.3  情景应用3——在控制台接收用户
输入数字 20
1.5.4  情景应用4——计算用户输入数字的
乘积 21
1.6  自我测试 22
1.7  行动指南 23
1.8  成功可以复制——“盖茨第二” 23
第2堂课  使用IDE集成开发工具 25
视频讲解：128分钟
2.1  Eclipse简介 26
2.2  Eclipse下载与安装 26
2.2.1  Eclipse分类 26
2.2.2  下载Eclipse 26
2.2.3  安装中文语言包 28
2.2.4  启动Eclipse 29
2.3  安装界面设计器 30
2.4  熟悉Eclipse 32
2.4.1  Eclipse工作台 32
2.4.2  透视图与视图 33
2.4.3  包资源管理器视图 33
2.4.4  编辑器视图 33
2.4.5  控制台 34
2.4.6  大纲视图 34
2.4.7  问题视图 34
2.4.8  透视图工具栏 35
2.4.9  视图工具栏 35
2.4.10  快速视图工具栏 35
2.5  如何开发Java程序 35
2.5.1  新建Java项目 36
2.5.2  新建Java类 36
2.5.3  编写Java代码 37
2.5.4  运行Java程序 39
2.6  如何开发桌面应用程序 39
2.6.1  新建Swing GUI窗体 40
2.6.2  向窗体中添加GUI控件 41
2.6.3  实现控件的事件监听器 43
2.6.4  运行GUI程序 43
2.7  如何进行程序调试 43
2.7.1  设置断点 44
2.7.2  以调试方式运行Java程序 44
2.7.3  程序调试 44
2.8  了解项目类库 45
2.9  照猫画虎——基本功训练 46
2.9.1  基本功训练1——添加JAR文件到
构建路径 46
2.9.2  基本功训练2——添加依赖项目到
构建路径 46
2.9.3  基本功训练3——创建用户自定义类库 47
2.9.4  基本功训练4——为项目添加类库 48
2.9.5  基本功训练5——为项目添加类文件夹 49
2.10  情景应用——拓展与实践 50
2.10.1  情景应用1——为窗体添加文本框控件 50
2.10.2  情景应用2——接收用户在控制台的
输入 50
2.10.3  情景应用3——编写一个信息提示窗体 51
2.10.4  情景应用4——控制窗体位置 52
2.10.5  情景应用5——编写UI界面的加法
计算器 54
2.11  自我测试 55
2.12  行动指南 56
2.13  成功可以复制——迅雷创始人
邹胜龙 57
第3堂课  Java语言基础知识 59
视频讲解：178分钟
3.1  Java主类结构 60
3.1.1  定义类包 60
3.1.2  定义类 60
3.1.3  导入API类库 60
3.1.4  定义变量 61
3.1.5  定义主方法 61
3.1.6  运行主类 61
3.2  代码注释 61
3.2.1  单行注释 61
3.2.2  多行注释 61
3.2.3  JavaDoc文档注释 62
3.3  变量与常量 62
3.3.1  Java保留字 62
3.3.2  定义变量 63
3.3.3  定义常量 64
3.3.4  常量与变量的有效范围 64
3.4  数据类型 65
3.4.1  计算机常用数制 66
3.4.2  整数类型 67
3.4.3  浮点类型 69
3.4.4  字符类型 69
3.4.5  布尔类型 71
3.5  数据类型转换 71
3.5.1  自动类型转换 71
3.5.2  强制类型转换 73
3.6  运算符 74
3.6.1  赋值运算符 74
3.6.2  算术运算符 75
3.6.3  自增和自减运算符 76
3.6.4  比较运算符 76
3.6.5  逻辑运算符 77
3.6.6  位运算符 78
3.6.7  三元运算符 80
3.6.8  运算符优先级 81
3.7  编码规范 81
3.8  照猫画虎——基本功训练 82
3.8.1  基本功训练1——合理设定变量类型 82
3.8.2  基本功训练2——变量自增运算 83
3.8.3  基本功训练3——类型转换 84
3.8.4  基本功训练4——运算符的应用 84
3.8.5  基本功训练5——求最大值 85
3.8.6  基本功训练6——位移实现数字乘以2
的8次幂 86
3.9  情景应用——拓展与实践 86
3.9.1  情景应用1——输出长方形面积 86
3.9.2  情景应用2——输出字节bit位的值 87
3.9.3  情景应用3——判断奇偶数 88
3.9.4  情景应用4——简单数据加密 89
3.9.5  情景应用5——判断闰年 89
3.9.6  情景应用6——异或运算实现变量值
交换 90
3.10  自我测试 91
3.11  行动指南 92
3.12  成功可以复制——知识改变命运、
科技改变生活 93
第4堂课  流程控制语句 95
视频讲解：113分钟
4.1  复合语句 96
4.2  条件语句 96
4.2.1  if条件判断语句 97
4.2.2  if语句的嵌套 100
4.2.3  switch分支语句 101
4.2.4  if语句和switch语句的区别 105
4.3  循环控制 105
4.3.1  for循环 105
4.3.2  while循环 107
4.3.3  do…while循环 109
4.3.4  print与println方法 110
4.3.5  循环嵌套 111
4.4  循环的跳转 112
4.4.1  continue跳转语句 112
4.4.2  break跳转语句 114
4.5  照猫画虎——基本功训练 116
4.5.1  基本功训练1——计算阶乘 116
4.5.2  基本功训练2——计算素数 116
4.5.3  基本功训练3——遍历21世纪的闰年 117
4.5.4  基本功训练4——输出空心的菱形 118
4.5.5  基本功训练5——循环的生命力 119
4.6  情景应用——拓展与实践 120
4.6.1  情景应用1——把用户输入的字母
变成大写 120
4.6.2  情景应用2——应用switch语句实现
生肖查询 121
4.6.3  情景应用3——验证用户登录信息 122
4.6.4  情景应用4——判断用户输入月份的
季节 123
4.6.5  情景应用5——汉字与区位码的转换 124
4.7  自我测试 126
4.8  行动指南 128
4.9  成功可以复制——中国通信设备行业
的领跑者任正非 129
第5堂课  数组应用 131
视频讲解：90分钟
5.1  一维数组的创建与应用 132
5.1.1  创建一维数组 132
5.1.2  初始化一维数组 133
5.1.3  遍历一维数组 133
5.2  二维数组的创建与应用 134
5.2.1  创建二维数组 134
5.2.2  初始化二维数组 135
5.2.3  遍历二维数组 135
5.3  多维数组的创建 136
5.3.1  数组的创建 136
5.3.2  初始化数组 137
5.3.3  遍历三维数组 137
5.4  照猫画虎——基本功训练 139
5.4.1  基本功训练1——填充替换数组元素 139
5.4.2  基本功训练2——对数组进行排序 140
5.4.3  基本功训练3——复制数组 141
5.4.4  基本功训练4——Foreach循环
遍历数组 142
5.4.5  基本功训练5——找出数组中最大值 143
5.5  情景应用——拓展与实践 144
5.5.1  情景应用1——使用冒泡排序 144
5.5.2  情景应用2——使用直接选择排序法 146
5.5.3  情景应用3——使用快速排序法 147
5.5.4  情景应用4——反转数组中元素的
顺序 149
5.5.5  情景应用5——利用数组随机抽取
幸运观众 150
5.6  自我测试 151
5.7  行动指南 152
5.8  成功可以复制——软件业的华人教父
王嘉廉 153
第6堂课  面向对象编程 155
视频讲解：154分钟
6.1  类的定义 156
6.2  包 156
6.2.1  类包简介 156
6.2.2  定义类的包 156
6.2.3  类包的导入 158
6.2.4  静态导入 158
6.3  成员变量与成员方法 159
6.3.1  成员变量 159
6.3.2  成员方法 160
6.3.3  方法的返回值 160
6.4  对象的创建与使用 162
6.4.1  创建类的对象 162
6.4.2  访问对象的属性 162
6.4.3  执行对象的行为 162
6.4.4  对象的销毁 164
6.5  类成员与类方法 164
6.5.1  类变量 164
6.5.2  类方法 165
6.6  照猫画虎——基本功训练 167
6.6.1  基本功训练1——用构造方法完成
初始化 167
6.6.2  基本功训练2——用静态代码块
初始化 170
6.6.3  基本功训练3——this关键字的用途 171
6.6.4  基本功训练4——方法参数传递 172
6.6.5  基本功训练5——方法的重载 174
6.7  情景应用——拓展与实践 177
6.7.1  情景应用1——整数进制转换器 177
6.7.2  情景应用2——获取数字的取值范围 178
6.7.3  情景应用3——ASCII编码查看器 179
6.7.4  情景应用4——构造方法初始化员工
对象 180
6.7.5  情景应用5——将字符串转换成整数 182
6.8  自我测试 183
6.9  行动指南 185
6.10  成功可以复制——创造互联网搜索
时代 186
第7堂课  字符串处理 189
视频讲解：116分钟
7.1  String类 190
7.1.1  声明字符串 190
7.1.2  构建字符串对象 190
7.2  连接字符串 191
7.2.1  连接多个字符串 191
7.2.2  连接其他数据类型 191
7.3  获取字符串信息 192
7.3.1  获取字符串长度 192
7.3.2  字符串查找 193
7.3.3  获取指定索引位置的字符 194
7.4  格式化字符串 194
7.4.1  日期和时间字符串格式化 194
7.4.2  常规类型格式化 197
7.5  字符串生成器 198
7.6  使用正则表达式 200
7.7  照猫画虎——基本功训练 202
7.7.1  基本功训练1——获取子字符串 202
7.7.2  基本功训练2——字符串替换 203
7.7.3  基本功训练3——判断字符串的开始与
结尾 204
7.7.4  基本功训练4——字母大小写转换 205
7.7.5  基本功训练5——字符串分割 206
7.8  情景应用——拓展与实践 207
7.8.1  情景应用1——字符串数组排序 207
7.8.2  情景应用2——格式化当前日期 208
7.8.3  情景应用3——正则表达式验证IP
地址 210
7.8.4  情景应用4——正则表达式鉴别非法
电话号码 211
7.8.5  情景应用5——获取字符串中汉字的
个数 212
7.9  自我测试 213
7.10  行动指南 214
7.11  成功可以复制——IT风云人物
鲍岳桥 215
第2部分  提高篇
第8堂课  类的继承与多态特性 219
视频讲解：172分钟
8.1  类的继承 220
8.2  方法的重写与Super关键字 222
8.3  修饰符 224
8.3.1  public修饰符 224
8.3.2  private修饰符 224
8.3.3  protected修饰符 225
8.3.4  默认权限修饰符 226
8.4  封装 227
8.4.1  把属性隐藏 227
8.4.2  定义设置器 227
8.4.3  定义访问器 228
8.4.4  使用Eclipse完成封装 228
8.5  Object类 230
8.5.1  equals方法 230
8.5.2  toString方法 231
8.6  照猫画虎——基本功训练 232
8.6.1  基本功训练1——多态数组 232
8.6.2  基本功训练2——参数多态 234
8.6.3  基本功训练3——抽象类实现几何面积
计算 238
8.6.4  基本功训练4——通过接口实现多态 241
8.6.5  基本功训练5——对象的转型与类型
判断 243
8.7  情景应用——拓展与实践 246
8.7.1  情景应用1——单例模式的应用 246
8.7.2  情景应用2——简单的汽车销售商场 247
8.7.3  情景应用3——重新定义对象的等式
判断 248
8.7.4  情景应用4——重新定义对象的字符串
表现方式 250
8.7.5  情景应用5——重新计算对象的哈希码 251
8.8  自我测试 252
8.9  行动指南 254
8.10  成功可以复制——中国第一程序员
求伯君 255
第9堂课  其他类特性与异常处理 257
视频讲解：70分钟
9.1  final特性 258
9.1.1  final变量 258
9.1.2  final方法 258
9.1.3  final类 259
9.2  内部类 259
9.2.1  成员内部类 259
9.2.2  获取外部类的引用 261
9.2.3  局部内部类 262
9.2.4  匿名内部类 263
9.2.5  静态内部类 263
9.3  异常处理 264
9.3.1  什么是异常 264
9.3.2  捕获异常 264
9.4  抛出异常 266
9.4.1  向上抛出异常 266
9.4.2  使用throw关键字抛出异常 267
9.5  运行时异常 268
9.6  异常的使用原则 269
9.7  照猫画虎——基本功训练 269
9.7.1  基本功训练1——使用普通内部类修改
窗体背景色 269
9.7.2  基本功训练2——使用局部内部类实现
闹钟 270
9.7.3  基本功训练3——使用匿名内部类实现
图片浏览器 271
9.7.4  基本功训练4——演示类未发现异常 272
9.7.5  基本功训练5——自定义异常类 273
9.8  情景应用——拓展与实践 274
9.8.1  情景应用1——实现文字的跑马灯效果 274
9.8.2  情景应用2——组装电脑 275
9.8.3  情景应用3——跟随鼠标移动的文字 277
9.8.4  情景应用4——鼠标经过时改变文本
颜色 277
9.8.5  情景应用5——在鼠标上显示当前时间 278
9.9  自我测试 279
9.10  行动指南 281
9.11  成功可以复制——80后新贵、泡泡
网CEO李想 282
第10堂课  Swing编程基础 283
视频讲解：153分钟
10.1  JFrame窗体控件 284
10.2  常用布局管理器 285
10.2.1  绝对布局 285
10.2.2  流式布局管理器 286
10.2.3  边界布局管理器 287
10.2.4  网格布局管理器 288
10.2.5  网格组布局管理器 289
10.3  常用面板 294
10.3.1  JPanel面板 294
10.3.2  JScrollPane面板 295
10.4  标签控件与图标 296
10.4.1  标签的使用 296
10.4.2  图标的使用 296
10.5  按钮控件 297
10.5.1  普通按钮控件 297
10.5.2  单选按钮控件 298
10.5.3  复选框控件 299
10.6  文本控件 300
10.6.1  文本框控件 300
10.6.2  密码框控件 301
10.6.3  文本域控件 302
10.7  列表控件 304
10.7.1  下拉列表框控件 304
10.7.2  列表框控件 305
10.8  进度条 306
10.9  照猫画虎——基本功训练 307
10.9.1  基本功训练1——设置窗体背景颜色为
淡蓝色 307
10.9.2  基本功训练2——修改密码框的
回显字符 308
10.9.3  基本功训练3——查看图标的信息 309
10.9.4  基本功训练4——修改列表项选择
模式 309
10.9.5  基本功训练5——监听列表项单击
事件 310
10.10  情景应用——拓展与实践 311
10.10.1  情景应用1——设置窗体的背景图片 311
10.10.2  情景应用2——震动效果的提示信息 312
10.10.3  情景应用3——实现计算器程序界面 313
10.10.4  情景应用4——实现用户注册界面 314
10.10.5  情景应用5——测试密码是否正确 315
10.11  自我测试 316
10.12  行动指南 317
10.13  成功可以复制——“杀毒王”
王江民 317
第11堂课  多线程编程 319
视频讲解：87分钟
11.1  线程基础 320
11.1.1  线程与进程的异同 320
11.1.2  创建无返回值线程 320
11.1.3  线程生命周期详解 322
11.1.4  线程各种属性介绍 323
11.2  线程控制 324
11.2.1  线程的休眠 324
11.2.2  线程的插队 325
11.2.3  线程的停止 326
11.3  线程同步 327
11.3.1  需要同步的原因 327
11.3.2  同步方法的使用 328
11.3.3  使用同步块减负 329
11.3.4  使用特殊成员变量 330
11.4  线程应用 331
11.4.1  EventQueue与线程分配 331
11.4.2  SwingWorker类的使用 333
11.5  照猫画虎——基本功训练 333
11.5.1  基本功训练1——查看线程的运行
状态 333
11.5.2  基本功训练2——查看线程的名称
和ID 334
11.5.3  基本功训练3——查看线程优先级
属性 334
11.5.4  基本功训练4——使用重入锁实现
同步 335
11.5.5  基本功训练5——原子变量与线程
同步 336
11.6  情景应用——拓展与实践 337
11.6.1  情景应用1——水平移动的图标 337
11.6.2  情景应用2——多彩的霓虹灯 338
11.6.3  情景应用3——电子广告牌 339
11.6.4  情景应用4——逐渐上升的气球 340
11.6.5  情景应用5——动态绘制圆周 341
11.7  自我测试 341
11.8  行动指南 343
11.9  成功可以复制——初中站长的
创业故事 344
第12堂课  事件处理的应用 345
视频讲解：77分钟
12.1  什么是GUI事件 346
12.1.1  为程序添加交互能力 346
12.1.2  GUI事件类 347
12.1.3  事件监听器 349
12.1.4  适配器 349
12.2  窗体事件 350
12.3  掌握鼠标操作 351
12.3.1  鼠标事件监听器 351
12.3.2  鼠标事件处理 352
12.4  掌握键盘控制 353
12.4.1  键盘事件监听器 353
12.4.2  键盘事件处理 354
12.5  照猫画虎——基本功训练 356
12.5.1  基本功训练1——查看窗体的生命
周期 356
12.5.2  基本功训练2——修改窗体中的鼠标
样式 358
12.5.3  基本功训练3——使用鼠标改变窗体的
背景色 359
12.5.4  基本功训练4——显示程序运行时间 359
12.5.5  基本功训练5——随机更换窗体背景
图片 360
12.6  情景应用——拓展与实践 361
12.6.1  情景应用1——简易配对游戏 361
12.6.2  情景应用2——模拟相机拍摄 363
12.6.3  情景应用3——打地鼠游戏 365
12.6.4  情景应用4——鼠标经过时放大的
按钮 367
12.6.5  情景应用5——迟到的登录按钮 367
12.7  自我测试 369
12.8  行动指南 370
12.9  成功可以复制——缔造华人的硅谷
传奇杨致远 371
第13堂课  常用工具类 373
视频讲解：93分钟
13.1  日期时间类 374
13.1.1  创建Date类的对象 374
13.1.2  比较Date对象 374
13.1.3  更改Date对象 376
13.1.4  日期的格式化输出 376
13.2  数学运算 379
13.2.1  Math类 379
13.2.2  Math类的数学方法 379
13.3  随机数 383
13.3.1  通过Math类生成随机数 383
13.3.2  使用Random类生成随机数 385
13.4  数字格式化类 386
13.4.1  DecimalFormat类 386
13.4.2  数字的格式化输出 387
13.5  照猫画虎——基本功训练 389
13.5.1  基本功训练1——输出30°的
三角函数值 389
13.5.2  基本功训练2——输出0.5的反三角
函数值 389
13.5.3  基本功训练3——角度和弧度的转换 390
13.5.4  基本功训练4——高精度整数运算 390
13.5.5  基本功训练5——高精度浮点运算 391
13.6  情景应用——拓展与实践 392
13.6.1  情景应用1——简单的数字时钟 392
13.6.2  情景应用2——简单的模拟时钟 393
13.6.3  情景应用3——简单的公历万年历 395
13.6.4  情景应用4——七星彩号码生成器 396
13.6.5  情景应用5——大乐透号码生成器 397
13.7  自我测试 398
13.8  行动指南 399
13.9  成功可以复制——征途巨人史玉柱
的第一桶金 400
第14堂课  常用集合类 403
视频讲解：102分钟
14.1  集合类概述 404
14.1.1  什么是集合类 404
14.1.2  Java集合类的继承关系 404
14.2  List集合 404
14.2.1  List接口 404
14.2.2  ArrayList类 407
14.3  Set集合 408
14.3.1  Set接口 408
14.3.2  HashSet类 409
14.4  Map集合 410
14.4.1  Map接口 410
14.4.2  HashMap类 411
14.4.3  TreeMap类 413
14.5  照猫画虎——基本功训练 415
14.5.1  基本功训练1——使用普通for循环
遍历ArrayList 415
14.5.2  基本功训练2——使用Foreach循环
遍历ArrayList 416
14.5.3  基本功训练3——使用Iterator
遍历ArrayList 416
14.5.4  基本功训练4——使用ListIterator逆序
遍历ArrayList 417
14.5.5  基本功训练5——使用TreeSet进行
排序 418
14.6  情景应用——拓展与实践 419
14.6.1  情景应用1——用动态数组保存学生
姓名 419
14.6.2  情景应用2——用List集合传递学生
信息 420
14.6.3  情景应用3——使用栈逆序输出字符串 420
14.6.4  情景应用4——制作电子词典 421
14.6.5  情景应用5——制作手机电话簿 422
14.7  自我测试 423
14.8  行动指南 424
14.9  成功可以复制——使计算机成为
生活的必需品 425
第3部分  高级篇
第15堂课  数据库编程应用 429
视频讲解：122分钟
15.1  JDBC技术 430
15.1.1  数据库概述 430
15.1.2  JDBC-ODBC技术介绍 431
15.1.3  JDBC技术 432
15.2  JDBC中常用的类和接口 432
15.2.1  DriverManager类 432
15.2.2  Connection接口 432
15.2.3  Statement接口 433
15.2.4  PreparedStatement接口 434
15.2.5  ResultSet接口 434
15.3  数据库连接 435
15.3.1  加载数据库驱动 435
15.3.2  创建数据库连接 436
15.3.3  向数据库发送SQL语句 438
15.3.4  获取查询结果集 438
15.3.5  关闭连接 439
15.4  照猫画虎——基本功训练 439
15.4.1  基本功训练1——在数据库中创建临时
表格 439
15.4.2  基本功训练2——在表格中增加数据 441
15.4.3  基本功训练3——在表格中删除数据 442
15.4.4  基本功训练4——在表格中修改数据 444
15.4.5  基本功训练5——查询表格中的数据 445
15.5  情景应用——拓展与实践 447
15.5.1  情景应用1——查询商品销售的
前3名 447
15.5.2  情景应用2——查询所有王姓同学
信息 450
15.5.3  情景应用3——查询男生和女生的
人数 450
15.5.4  情景应用4——用户重名校验 451
15.5.5  情景应用5——用户登录系统 452
15.6  自我测试 453
15.7  行动指南 454
15.8  成功可以复制——图文世界的
缔造者 455
第16堂课  输入输出流与文件 457
视频讲解：118分钟
16.1  文件 458
16.1.1  File类 458
16.1.2  常用方法 458
16.2  字节输入输出流 460
16.2.1  标准输入流 460
16.2.2  标准输出流 462
16.2.3  文件输入流 462
16.2.4  文件输出流 463
16.2.5  缓存输入流 464
16.2.6  缓存输出流 465
16.2.7  数据输入流 466
16.2.8  数据输出流 467
16.3  字符输入输出流 468
16.3.1  Reader类 468
16.3.2  Writer类 469
16.3.3  FileReader类 470
16.3.4  FileWriter类 471
16.3.5  Scanner类 472
16.3.6  PrintWriter类 473
16.4  StringBuilder类 474
16.4.1  StringBuilder与StringBuffer 475
16.4.2  常用方法 476
16.5  照猫画虎——基本功训练 476
16.5.1  基本功训练1——复制单个文件 476
16.5.2  基本功训练2——删除指定文件 478
16.5.3  基本功训练3——复制文件夹 478
16.5.4  基本功训练4——删除含有文件的
文件夹 479
16.5.5  基本功训练5——压缩指定文件 480
16.6  情景应用——拓展与实践 482
16.6.1  情景应用1——删除文件夹中所有.tmp
临时文件 482
16.6.2  情景应用2——合并多个txt文件 483
16.6.3  情景应用3——查看文件夹中所有隐藏
文件 484
16.6.4  情景应用4——简单键盘记录器 485
16.6.5  情景应用5——记录用户的登录时间 486
16.7  自我测试 487
16.8  行动指南 489
16.9  成功可以复制——世界第一人称射击
游戏之父 489
第17堂课  网络程序设计 491
视频讲解：108分钟
17.1  网络基础 492
17.1.1  TCP/IP协议 492
17.1.2  TCP与UDP协议 492
17.1.3  端口和套接字 493
17.2  InetAddress地址类 494
17.3  TCP通信 496
17.3.1  ServerSocket类 496
17.3.2  Socket类 497
17.4  UDP通信 500
17.4.1  DatagramSocket类 500
17.4.2  DatagramPacket类 501
17.5  照猫画虎——基本功训练 503
17.5.1  基本功训练1——获取主机IP地址 503
17.5.2  基本功训练2——设置连接超时 504
17.5.3  基本功训练3——创建URL对象 505
17.5.4  基本功训练4——提取URL协议名称 506
17.5.5  基本功训练5——获取URL的端口 507
17.6  情景应用——拓展与实践 508
17.6.1  情景应用1——客户端一对一通信 508
17.6.2  情景应用2——编写简单聊天室程序 510
17.6.3  情景应用3——使用Socket传输图片 512
17.7  自我测试 514
17.8  行动指南 514
17.9  成功可以复制——IT“大王”
王志东 515
第18堂课  表格控件的应用 517
视频讲解：210分钟
18.1  创建和定制表格 518
18.1.1  创建表格 518
18.1.2  定制表格 520
18.2  维护表格模型 524
18.2.1  创建表格模型 524
18.2.2  设置表格模型 524
18.2.3  维护模型对象 525
18.3  创建行标题栏 529
18.4  模型的事件监听与处理 533
18.5  照猫画虎——基本功训练 537
18.5.1  基本功训练1——表头与列的高度
设置 537
18.5.2  基本功训练2——调整表格各列的
宽度 540
18.5.3  基本功训练3——设置表格的选择
模式 541
18.5.4  基本功训练4——为表头增添提示
信息 542
18.5.5  基本功训练5——单元格的粗粒度
排序 544
18.6  情景应用——拓展与实践 545
18.6.1  情景应用1——删除指定的图书信息 545
18.6.2  情景应用2——分页显示100内的
平方数 546
18.6.3  情景应用3——五光十色的单元格 548
18.6.4  情景应用4——实现表格的栅栏效果 550
18.6.5  情景应用5——根据颜色的分量进行
排序 551
18.7  自我测试 552
18.8  行动指南 553
18.9  成功可以复制——微型博客Twitter
创始人 554
第19堂课  树控件的应用 555
视频讲解：141分钟
19.1  创建树控件 556
19.2  维护树模型 558
19.2.1  创建模型对象 558
19.2.2  设置树控件的模型 560
19.2.3  维护树的模型 562
19.3  照猫画虎——基本功训练 566
19.3.1  基本功训练1——树控件常用遍历
方式 566
19.3.2  基本功训练2——监听节点的选择
事件 567
19.3.3  基本功训练3——监听节点的展开
事件 568
19.3.4  基本功训练4——设置树控件选择
模式 570
19.3.5  基本功训练5——查看节点的各种
状态 572
19.4  情景应用——拓展与实践 573
19.4.1  情景应用1——以树结构显示文件夹下
的文件 573
19.4.2  情景应用2——增加图书节点 574
19.4.3  情景应用3——删除图书节点 575
19.4.4  情景应用4——查找图书节点 576
19.4.5  情景应用5——为树节点增加提示
信息 577
19.5  自我测试 578
19.6  行动指南 579
19.7  成功可以复制——因特网的点火人 580
第20堂课  其他高级控件 581
视频讲解：326分钟
20.1  文件选择对话框 582
20.1.1  创建文件选择对话框 582
20.1.2  添加文件过滤器 583
20.2  工具栏 584
20.2.1  创建工具栏 584
20.2.2  添加工具按钮 585
20.3  菜单栏与弹出菜单 586
20.3.1  创建菜单栏 586
20.3.2  添加菜单和菜单项 587
20.3.3  创建弹出菜单 589
20.4  创建分割面板 591
20.4.1  创建分割面板 591
20.4.2  使用分割面板 592
20.5  创建并使用选项卡面板 594
20.5.1  创建选项卡面板 594
20.5.2  使用选项卡面板 595
20.6  桌面面板和内部窗体 596
20.6.1  创建桌面面板 596
20.6.2  创建内部窗体 598
20.7  使用系统托盘 600
20.7.1  获取系统托盘 600
20.7.2  为系统托盘添加图标 601
20.7.3  添加弹出菜单 601
20.8  照猫画虎——基本功训练 603
20.8.1  基本功训练1——使子窗体最大化
显示 603
20.8.2  基本功训练2——模仿记事本的
菜单栏 604
20.8.3  基本功训练3——在工具栏中增加
图标 605
20.8.4  基本功训练4——为选项卡增加
快捷键 606
20.8.5  基本功训练5——为选项卡增加
图标 607
20.9  情景应用——拓展与实践 608
20.9.1  情景应用1——支持图片预览的文件
选择对话框 608
20.9.2  情景应用2——记录选项卡的访问
状态 610
20.9.3  情景应用3——简单的图片浏览器 611
20.9.4  情景应用4——浏览文本文件内容 613
20.9.5  情景应用5——在弹出菜单中显示
图片 616
20.10  自我测试 617
20.11  行动指南 618
20.12  成功可以复制——暴雪公司的
领航者 618
第21堂课  图形绘制技术 621
视频讲解：74分钟
21.1  Graphics简介 622
21.1.1  Graphics 622
21.1.2  Graphics2D 622
21.1.3  获得控件的Graphics2D对象 622
21.2  设置颜色与笔画 623
21.2.1  设置颜色 623
21.2.2  笔画属性 624
21.3  如何绘制文本 625
21.3.1  设置字体 625
21.3.2  绘制文本 626
21.4  在控件上绘图 628
21.5  绘制图形 628
21.6  照猫画虎——基本功训练 630
21.6.1  基本功训练1——绘制图像 630
21.6.2  基本功训练2——缩放图像 631
21.6.3  基本功训练3——旋转图像 634
21.6.4  基本功训练4——倾斜图像 635
21.6.5  基本功训练5——翻转图像 636
21.7  情景应用——拓展与实践 637
21.7.1  情景应用1——绘制直方图 637
21.7.2  情景应用2——倾斜效果的文字 638
21.7.3  情景应用3——纹理填充特效 639
21.7.4  情景应用4——简单的校验图片 640
21.7.5  情景应用5——显示彩色字符串 641
21.8  自我测试 642
21.9  行动指南 643
21.10  成功可以复制——3D王国的
开创者 643
第4部分  实战篇
第22堂课  进销存管理系统 647
视频讲解：162分钟
22.1  项目描述 648
22.2  系统分析 648
22.2.1  需求分析 648
22.2.2  可行性分析 649
22.3  系统设计 650
22.3.1  系统目标 650
22.3.2  系统功能结构 650
22.3.3  系统业务流程图 651
22.3.4  系统编码规范 651
22.4  系统运行环境 653
22.5  数据库与数据表设计 654
22.5.1  数据库分析 654
22.5.2  创建数据库 654
22.5.3  创建数据表 655
22.6  创建项目 659
22.7  系统文件夹组织结构 659
22.8  公共类设计 660
22.8.1  SaveUserInfo公共类 660
22.8.2  OnlyNumber公共类 661
22.8.3  DaoConn公共类 661
22.9  系统登录模块设计 662
22.9.1  设计系统登录窗体 662
22.9.2  “登录”按钮的事件处理 662
22.9.3  “密码”文本框的回车事件 663
22.10  主窗体模块设计 663
22.10.1  创建系统主窗体 664
22.10.2  设计菜单栏 664
22.10.3  设计工具栏 664
22.10.4  设计导航按钮 665
22.10.5  设计状态栏 665
22.10.6  设计显示背景图片的面板 665
22.11  供应商基本信息管理模块设计 667
22.11.1  设计供应商基本信息管理窗体 668
22.11.2  添加供应商信息 669
22.11.3  修改供应商信息 670
22.11.4  删除供应商信息 673
22.12  订购商品信息管理模块设计 675
22.12.1  设计订购商品信息管理窗体 675
22.12.2  订购商品信息 676
22.13  采购入库管理模块设计 678
22.13.1  设计采购入库管理窗体 679
22.13.2  采购入库管理 679
22.14  入库信息查询模块设计 682
22.14.1  设计入库信息查询窗体 683
22.14.2  入库信息查询 683
22.15  入库退货管理模块设计 686
22.15.1  设计入库退货管理窗体 687
22.15.2  设计录入商品入库退货信息窗体 688
22.15.3  设计保存输入信息的类 688
22.16  库存盘点窗体模块设计 692
22.16.1  设计库存盘点窗体 693
22.16.2  库存盘点 693
22.17  库存调拨模块设计 694
22.17.1  设计库存调拨窗体 695
22.17.2  添加商品调拨信息 696
22.17.3  查询商品调拨信息 697
22.18  销售订单管理模块设计 699
22.18.1  设计销售订单管理窗体 699
22.18.2  销售订单管理 700
22.19  销售出库管理模块设计 703
22.19.1  设计销售出库管理窗体 703
22.19.2  销售出库管理 704
22.20  销售退货管理模块设计 709
22.20.1  设计销售退货管理窗体 710
22.20.2  设计录入商品销售退货信息窗体 710
22.20.3  设计保存输入信息的类 711
22.21  添加用户信息模块设计 716
22.21.1  设计添加用户信息窗体 716
22.21.2  添加用户信息 717
22.22  用户设置窗体模块设计 718
22.22.1  设计用户设置窗体 719
22.22.2  修改用户密码 719
22.22.3  设置用户权限 720
22.22.4  删除用户信息 722
22.23  经手人管理模块设计 723
22.23.1  设计经手人管理窗体 723
22.23.2  添加经手人 724
22.23.3  设置经手人 725
22.24  开发常见问题与解决 726
22.24.1  不显示系统登录窗体 726
22.24.2  运行程序时找不到数据库驱动 726
22.24.3  运行程序时用户名或密码不正确 727
22.24.4  运行程序时找不到数据库 727
22.25  总结 728
特别提醒：
亲爱的读者朋友，由于近期纸张价格和印制成本大幅上涨，为不增加读者朋友的负担，又不减少书的内容，本书以下章节内容不得不放在配书光盘中，由此给您带来了不便，在此深表歉意。
第23堂课  企业内部通讯管理系统 729
视频讲解：10分钟
（本章内容在配书光盘中）
23.1  开发背景 730
23.2  系统设计 730
23.2.1  系统目标 730
23.2.2  系统功能结构 730
23.2.3  数据库设计 730
23.2.4  文件夹组织结构 731
23.3  主窗体设计 732
23.4  公共模块设计 732
23.5  系统托盘模块设计 733
23.6  系统操作模块设计 733
23.7  用户管理模块设计 734
23.8  通讯模块设计 735
23.9  总结 736
第24堂课  图书馆管理系统 737
视频讲解：19分钟
（本章内容在配书光盘中）
24.1  系统分析 738
24.2  系统设计 738
24.2.1  系统目标 738
24.2.2  系统功能结构 738
24.2.3  系统业务流程图 739
24.3  系统运行环境 739
24.4  数据库与数据表设计 740
24.4.1  数据库分析 740
24.4.2  数据表设计 740
24.5  系统文件夹组织结构 742
24.6  公共类设计 743
24.7  登录模块设计 743
24.8  系统主窗体设计 743
24.9  新书订购模块设计 744
24.10  图书验收模块设计 745
24.11  图书信息添加模块设计 745
24.12  图书信息修改模块设计 746
24.13  图书借阅模块设计 746
24.14  图书归还模块设计 747
24.15  图书查询模块设计 747
24.16  总结 748
附录A  Java程序编码规范 749
（本章内容在配书光盘中）
A.1  命名规则 749
A.1.1  数据类型简写规则 749
A.1.2  变量及常量名称命名规则 749
A.1.3  类命名规则 749
A.1.4  成员变量命名规则 750
A.1.5  方法命名规则 750
A.1.6  接口命名规则 750
A.2  代码版式 750
A.2.1  统一代码缩进 750
A.2.2  合理使用空行 751
A.2.3  代码换行 751
A.2.4  空格的使用 751
A.3  代码注释 751
A.3.1  注释的目的 751
A.3.2  代码注释规范 751
A.4  数据库编程命名规范 752
A.4.1  数据库命名规范 752
A.4.2  数据表命名规范 752
A.4.3  字段命名规范 752
A.4.4  视图命名规范 753
A.4.5  存储过程命名规范 753
A.4.6  触发器命名规范 753