第1章 Java语言概述 1
1.1 Java语言的发展 1
1.1.1 软件 1
1.1.2 程序设计语言 2
1.1.3 Java的由来 3
1.2 工作任务:Java环境构建 6
1.3 第一个Java应用程序 11
1.3.1 工作任务:编写第一个Java应用程序 11
1.3.2 代码分析 13
1.3.3 Java程序的运行方式 15
1.4 Java的特点 16
1.5 工作任务:集成开发工具的使用 17
课后作业 24
第2章 Java语法基础 25
2.1 Java中的标识符和关键字 25
2.1.1 标识符 25
2.1.2 关键字 26
2.1.3 Java标识符的命名约定 26
2.2 变量和基本数据类型 27
2.2.1 变量的概念 27
2.2.2 基本数据类型 27
2.2.3 变量的初始化和作用域 30
2.2.4 变量的自动类型转换和强制类型转换 31
2.2.5 常量 33
2.3 运算符 34
2.3.1 算术运算符 34
2.3.2 赋值运算符 35
2.3.3 关系运算符 35
2.3.4 逻辑运算符 36
2.3.5 位运算符 37
2.3.6 其他运算符 39
2.3.7 运算符的优先级 39
2.3.8 工作任务:信息输出和整数反转 40
2.4 Java的控制语句 41
2.4.1 if条件语句 41
2.4.2 switch语句 45
2.4.3 while循环语句 47
2.4.4 do while语句 48
2.4.5 for循环语句 49
2.4.6 break与contine语句 51
2.5 工作任务:学生综合素质评定系统 52
2.5.1 学生综合素质评定系统需求 52
2.5.2 系统登录及主界面实现 54
课后作业 57
第3章 面向对象程序设计 58
3.1 对象和类的概念 59
3.1.1 对象 59
3.1.2 类的概念 60
3.2 定义类和创建对象 61
3.2.1 类的声明 61
3.2.2 类的成员 62
3.2.3 创建对象 63
3.2.4 构造方法 64
3.2.5 this关键字 66
3.2.6 对象的生命周期 67
3.3 方法 68
3.3.1 方法的重载 68
3.3.2 方法间的参数传递 71
3.3.3 工作任务:学生综合素质评定系统框架 73
3.4 数组 75
3.4.1 一维数组 75
3.4.2 多维数组 77
3.5 静态属性和静态方法 79
3.5.1 静态变量 79
3.5.2 静态方法 80
3.6 封装 81
3.6.1 包 81
3.6.2 访问控制权限 82
3.6.3 封装 83
3.6.4 工作任务:用数组实现学生信息数据的存取 84
3.7 继承 88
3.8 多态 94
3.9 抽象类和接口 95
3.9.1 抽象类 95
3.9.2 接口 96
3.9.3 抽象类和接口的比较 97
3.10 内部类 98
3.10.1 内部类 98
3.10.2 内部匿名类 99
3.11 工作任务:综合案例 100
课后作业 106
第4章 Java常用类 107
4.1 String类 107
4.1.1 String常用构造方法和成员方法 108
4.1.2 “hello”与new String(“hello”)的区别 110
4.2 StringBuffer类 111
4.2.1 比较String类与StringBuffer类 111
4.2.2 StringBuffer类常用构造方法和成员方法 112
4.3 处理日期的类 113
4.3.1 java.tuil.Date和java.text.SimpleDateFormat类 113
4.3.2 java.tuil.Calendar类 114
4.4 包装类 115
4.4.1 包装类的构造方法 116
4.4.2 包装类的常用方法 116
4.5 Math类 117
4.6 Java集合框架 119
4.6.1 Collection和Iterator接口 120
4.6.2 Map接口 126
4.6.3 工作任务:用集合类实现学生成绩信息的存取 129
课后作业 135
第5章 异常处理 136
5.1 异常的概念 136
5.2 异常的分类 137
5.3 异常的处理 138
5.3.1 捕获异常 138
5.3.2 抛出异常 142
5.3.3 声明异常 144
5.3.4 工作任务:学生综合素质评定系统优化 144
5.4 自定义异常 148
课后作业 150
第6章 Java输入输出流 151
6.1 Java.IO.File类 151
6.1.1 文件和目录 152
6.1.2 Java中文件的创建 152
6.1.3 Java中对文件的操作 154
6.2 JavaI/O原理 155
6.3 字节流和字符流 156
6.3.1 字节流 156
6.3.2 字符流 164
6.3.3 工作任务:采用文件方式永久保存学生信息数据 171
课后作业 174
第7章 图形界面程序设计 175
7.1 抽象窗口工具集(AWT)和Swing 176
7.2 Swing基础 177
7.2.1 Javax.swing包 177
7.2.2 一个简单的Swing程序 177
7.3 Swing容器和组件 178
7.3.1 框架JFrame 179
7.3.2 面板JPanel 181
7.3.3 利用JPanel进行2D图形绘制 182
7.3.4 工作任务:单机版五子棋棋盘的绘制 184
7.4 Swing的布局管理器 186
7.4.1 BorderLayout 187
7.4.2 FlowLayout 188
7.4.3 GridLayout 189
7.4.4 定位组件的绝对位置 191
7.4.5 工作任务:结合布局管理器为游戏窗体添加菜单栏 192
7.5 Swing的事件处理机制 193
7.5.1 事件监听器 194
7.5.2 事件的种类 195
7.5.3 工作任务:为棋盘面板添加鼠标移动事件 198
7.5.4 事件适配器 199
7.5.5 工作任务:编写棋子类,使用鼠标事件适配器为棋盘添加下棋事件 201
7.6 Swing常用组件 205
7.6.1 JLabel 206
7.6.2 按钮类 207
7.6.3 工作任务:为菜单添加菜单按钮 211
7.6.4 文本框 213
7.6.5 JOptionPane 216
7.6.6 工作任务:添加输赢判断 218
7.6.7 JTable 222
7.6.8 JTree 224
7.6.9 工作任务:为菜单按钮添加事件 227
7.7 Swing知识扩展 230
7.7.1 Swing观感器的使用 230
7.7.2 工作任务:为五子棋游戏添加观感器 233
7.7.3 Swing与并发 233
课后作业 237
第8章 Java多线程机制 238
8.1 线程的概念 239
8.2 线程的创建 239
8.2.1 通过Thread类创建线程 239
8.2.2 实现Runnable接口创建线程 241
8.2.3 使用join()等待从线程结束 242
8.2.4 工作任务:重画五子棋棋盘 243
8.3 线程的优先级 245
8.4 线程的同步与互斥 247
8.4.1 线程的互斥 247
8.4.2 线程的同步 250
8.4.3 工作任务:创建游戏欢迎界面 253
8.5 线程的暂停、恢复和停止 256
8.6 死锁 258
8.7 使用Timer类进行任务调度 260
8.7.1 Timer类 260
8.7.2 工作任务:在欢迎界面中加载游戏资源 262
课后作业 264
第9章 访问数据库 265
9.1 JDBC简介 266
9.2 JDBC驱动 266
9.3 JDBC中的常用接口 267
9.4 连接数据库 268
9.5 JDBC访问SQL Server 2005数据库案例 270
9.5.1 工作任务:使用Statement对象 270
9.5.2 工作任务:使用PreparedStatement对象 276
课后作业 282
第10章 阶段项目三:淮信超市进销存系统设计与实现 283
10.1 淮信POS进销存系统需求分析 283
10.2 数据库表设计与实现 285
参考文献 289