第1章 您好——Java入门 1
1.1 任务预览 1
1.2 Java语言概述 1
1.3 建立Java开发环境 2
1.3.1 Java开发工具包JDK 2
1.3.2 集成开发环境Eclipse 4
1.4 Java开发步骤 7
1.4.1 记事本加JDK开发步骤 7
1.4.2 Eclipse开发步骤 9
1.5 本章小结 13
1.6 实训1:您好 13
1.7 实训报告样板 14
第2章 计算器——数据类型与表达式 16
2.1 任务预览 16
2.2 标识符 16
2.3 关键字 17
2.4 变量 17
2.5 基本数据类型 18
2.6 字符串及其与数值的转换 19
2.7 算术运算符及算术表达式、字符串连接符 20
2.8 赋值运算符、赋值表达式及赋值语句 22
2.9 运算符的优先级与结合性 23
2.10 自增和自减运算符 24
2.11 语句与方法 25
2.12 本章小结 26
2.13 实训2:简易计算器 27
第3章 计算面积周长——方法与作用域 28
3.1 任务预览 28
3.2 方法定义 28
3.3 方法调用 30
3.4 在命令行窗口输入输出数据 31
3.4.1 输入数据 32
3.4.2 输出数据 32
3.5 方法签名与方法重载 33
3.6 方法参数值传递——单向传递 35
3.7 变量作用域 36
3.7.1 局部变量作用域 36
3.7.2 字段作用域 36
3.8 本章小结 37
3.9 实训3:计算圆、矩形面积和周长 38
第4章 打折计价——逻辑值与分支结构 40
4.1 任务预览 40
4.2 逻辑值 40
4.3 关系运算符与关系表达式 41
4.4 逻辑运算符与逻辑表达式 41
4.5 程序基本控制结构 43
4.5.1 顺序结构 43
4.5.2 分支结构 43
4.5.3 循环结构 44
4.6 if语句 44
4.7 switch(多分支)语句 48
4.8 三目条件运算符 50
4.9 本章小结 51
4.10 实训4:打折计价、显示星座、判断成绩等级 52
第5章 累加与阶乘——循环结构 54
5.1 任务预览 54
5.2 while语句 54
5.3 复合赋值运算符 56
5.4 for语句 57
5.5 递归调用方法 60
5.6 do-while语句 61
5.7 break和continue语句 62
5.8 多重循环 63
5.9 本章小结 64
5.10 实训5:累加、阶乘与乘法表 65
第6章 除法运算——异常处理 67
6.1 任务预览 67
6.2 异常 67
6.3 异常种类与层次结构 68
6.4 异常处理代码块try-catch-finally 69
6.5 throw语句与throws子句 72
6.6 自定义异常类 74
6.7 异常处理代码块嵌套 75
6.8 错误与断言 76
6.9 本章小结 78
6.10 实训6:除法运算程序 79
第7章 圆和矩形——类与对象 81
7.1 任务预览 81
7.2 定义类 81
7.3 构造方法及其重载 84
7.4 访问控制修饰符 86
7.4.1 类修饰符public 86
7.4.2 类成员修饰符public、protected和private 86
7.5 静态成员和实例成员 87
7.5.1 使用static声明静态成员 87
7.5.2 实例成员与关键字this 87
7.6 使用final 88
7.6.1 使用final声明常量 88
7.6.2 使用final声明方法 88
7.6.3 使用final声明类 88
7.7 程序举例 89
7.8 本章小结 92
7.9 实训7:构建圆和矩形对象 93
第8章 动物类派生——继承与多态 94
8.1 任务预览 94
8.2 继承与派生 94
8.3 用protected声明受保护成员 97
8.4 关键字super 98
8.4.1 用super调用父类构造方法 98
8.4.2 用super访问父类字段和方法 99
8.5 类类型变量赋值 99
8.5.1 子类对象的上转型对象 99
8.5.2 子类变量不能直接引用父类对象 101
8.5.3 兄弟类对象不能相互替换 102
8.6 多态性 102
8.6.1 方法重写 102
8.6.2 方法重载 103
8.7 本章小结 103
8.8 实训8:学生类继承人类与动物多态性 105
第9章 实现抽象图形——接口与包 108
9.1 任务预览 108
9.2 抽象方法与抽象类 108
9.2.1 抽象方法与抽象类 108
9.2.2 对比抽象类(方法)与最终类(方法) 110
9.3 接口类型 111
9.3.1 接口定义与实现 111
9.3.2 通过接口来引用类——接口多态 112
9.4 接口多重继承与实现 113
9.4.1 接口多重继承 113
9.4.2 类实现多个接口 114
9.5 包 114
9.5.1 Java系统API包 114
9.5.2 定义包 115
9.5.3 引入包 117
9.6 本章小结 121
9.7 实训9:实现图形接口 122
第10章 成绩统计——数组与字符串 125
10.1 任务预览 125
10.2 数组 125
10.2.1 声明数组变量 126
10.2.2 创建数组实例 127
10.2.3 访问数组元素 127
10.2.4 数组声明、创建、元素赋值三合一 128
10.3 多维数组 129
10.4 数组操作与数组封装类Arrays 130
10.4.1 数组遍历 130
10.4.2 数组排序 131
10.4.3 数组复制 131
10.5 引用类型作方法参数——地址传递 133
10.6 数组参数与可变数目参数方法 134
10.6.1 数组参数方法 134
10.6.2 可变数目参数方法 135
10.7 字符串类 136
10.7.1 不变字符串类String 136
10.7.2 字符串缓冲区类StringBuffer 137
10.7.3 字符串生成器类StringBuilder 138
10.8 正则表达式与字符串匹配 138
10.9 本章小结 140
10.10 实训10:最大最小值与成绩统计 141
第11章 抽奖——随机数与枚举 144
11.1 任务预览 144
11.2 随机数与Random类 144
11.3 枚举类型 147
11.4 本章小结 150
11.5 实训11:抽奖 150
第12章 文件读写——输入输出流 153
12.1 任务预览 153
12.2 数据流 154
12.3 文件输入输出流 155
12.3.1 FileReader与FileWriter 155
12.3.2 FileInputStream与FileOutputStream 157
12.4 文件对话框与常用对话框 159
12.5 随机访问文件流RandomAccessFile 162
12.6 序列化与对象输入输出 164
12.7 缓冲输入输出流与格式化输出流 167
12.7.1 缓冲流BufferedReader和BufferedWriter 167
12.7.2 格式化字符输出流PrintWriter 169
12.8 本章小结 169
12.9 实训12:文件复制与对象读写 171
第13章 龟兔赛跑——多线程 174
13.1 任务预览 174
13.2 程序、进程与线程 175
13.3 多线程 176
13.3.1 构建Thread子类对象 176
13.3.2 用实现Runnable接口对象构建Thread 177
13.4 线程类Thread 178
13.4.1 Thread类构造方法及线程名 178
13.4.2 线程优先级与Thread相关字段 179
13.4.3 线程生命周期与线程状态 180
13.4.4 线程其他方法 181
13.5 线程同步与互斥 182
13.5.1 同步关键字synchronized 183
13.5.2 生产者与消费者模型 185
13.6 本章小结 188
13.7 实训13:龟兔赛跑、生产者与消费者 189
第14章 元素增删检索——集合与泛型 192
14.1 任务预览 192
14.2 集合框架与泛型 192
14.3 集合分类与元素增删改 195
14.3.1 集合根接口Collection<E>与元素遍历 195
14.3.2 列表接口List<E>与Vector<E>和ArrayList<E>类 196
14.3.3 无重复元素集合接口Set<E> 197
14.3.4 队列接口Queue<E> 198
14.4 集合封装类Collections 198
14.5 数据封装类与自动装箱拆箱 199
14.5.1 基本类型与数据封装类 199
14.5.2 自动装箱和自动拆箱 200
14.6 键/值映射与映射类 201
14.6.1 映射接口Map<K,V> 202
14.6.2 哈希表Hashtable<K,V>与哈希映射HashMap<K,V> 202
14.6.3 树映射类TreeMap<K,V> 206
14.7 本章小结 207
14.8 实训14:学生属性增删改与键/值检索 209
第15章 爱好选择——图形用户界面 211
15.1 任务预览 211
15.2 图形用户界面及其组件 211
15.2.1 java.awt包与重量级组件 212
15.2.2 javax.swing包与轻量级组件 213
15.2.3 组件类继承关系 215
15.3 容器 216
15.3.1 容器根类Container 216
15.3.2 JFrame窗体 217
15.3.3 JDialog对话框 218
15.3.4 JPanel面板 220
15.4 常用组件 221
15.4.1 JLabel标签与ImageIcon图像图标 221
15.4.2 JButton按钮 222
15.4.3 JTextField文本框与JPasswordField密码框 222
15.4.4 JCheckBox复选框 224
15.4.5 JRadioButton单选按钮与ButtonGroup按钮组 226
15.5 本章小结 228
15.6 实训15:兴趣爱好选择程序 230
第16章 鼠标测试——布局与事件 233
16.1 任务预览 233
16.2 布局 233
16.2.1 BorderLayout边界布局 234
16.2.2 FlowLayout流动布局 235
16.2.3 GridLayout网格布局 236
16.2.4 CardLayout卡片布局与幻灯片播放 237
16.2.5 null空布局 241
16.3 事件 242
16.3.1 事件处理模型 242
16.3.2 事件类、监听接口/适配器类及方法 243
16.4 事件适配器与鼠标事件 244
16.5 选项事件与列表选择事件 247
16.5.1 JComboBox<E>下拉组合框 249
16.5.2 JList<E>列表框 250
16.5.3 JTextArea文本区 251
16.5.4 JScrollPane滚动窗格与JViewport视口 251
16.6 本章小结 252
16.7 实训16:鼠标测试 254
第17章 简易记事本——工具栏与菜单 258
17.1 任务预览 258
17.2 JToolBar工具栏 258
17.3 菜单 260
17.3.1 JMenuBar菜单栏 263
17.3.2 JMenu菜单 263
17.3.3 JMenuItem菜单项 264
17.4 JPopupMenu弹出菜单 265
17.5 简易记事本 266
17.6 本章小结 271
17.7 实训17:简易记事本 271
第18章 音乐播放——小程序 274
18.1 任务预览 274
18.2 小程序 274
18.3 生命周期与常用方法 276
18.4 播放声音 278
18.5 网页传值 281
18.6 绘制图像 284
18.7 状态栏动态显示时间 285
18.8 本章小结 286
18.9 实训18:音乐播放与时间显示 287
第19章 绘图——窗体与画布 289
19.1 任务预览 289
19.2 窗体绘图 289
19.2.1 图形上下文类Graphics 291
19.2.2 工具包类Toolkit 292
19.2.3 在窗体中手动绘图 293
19.3 颜色与字体 295
19.3.1 颜色类Color 295
19.3.2 颜色选择器类JColorChooser及其对话框 296
19.3.3 字体类Font 297
19.4 Canvas画布绘图 299
19.5 光标类Cursor 304
19.6 本章小结 304
19.7 实训19:手动绘图 305
第20章 动画——图形界面综合应用 307
20.1 任务预览 307
20.2 气球飘飘 307
20.3 图像幻灯片 310
20.4 动画 314
20.5 本章小结 318
20.6 实训20:编写动画程序 319
第21章 学生管理——三层结构数据库编程 321
21.1 任务预览 321
21.2 建立数据库 322
21.2.1 在DBMS上建立数据库 322
21.2.2 运行SQL脚本建立数据库 322
21.3 连接数据库 324
21.3.1 下载驱动jar包并加载JDBC驱动程序 324
21.3.2 由DriverManager类建立数据库连接 324
21.3.3 Connection连接与创建语句方法 326
21.4 访问数据库 327
21.4.1 数据库编程步骤 327
21.4.2 Statement语句及其执行方法 329
21.4.3 PreparedStatement预编译语句及其执行方法 329
21.4.4 ResultSet结果集 330
21.5 三层结构应用程序概述 334
21.6 三层结构学生信息管理程序 334
21.6.1 对象/关系映射 335
21.6.2 实体类与JavaBean 335
21.6.3 数据层 338
21.6.4 业务逻辑层 342
21.6.5 表示层 346
21.7 打包发布程序 355
21.8 本章小结 357
21.9 实训21:三层结构学生信息管理程序 359
第22章 聊天——网络编程 361
22.1 任务预览 361
22.2 基于UDP协议的网络通讯 362
22.2.1 IP地址类InetAddress 365
22.2.2 数据报套接字类DatagramSocket 365
22.2.3 数据报包类DatagramPacket 367
22.2.4 基于UDP协议网络编程步骤 367
22.3 基于TCP协议的网络通讯 371
22.3.1 基于TCP协议网络编程步骤 372
22.3.2 服务器套接字类ServerSocket 380
22.3.3 套接字类Socket 380
22.3.4 TCP协议和UDP协议通讯特征比较 381
22.4 本章小结 382
22.5 实训22:编写网络聊天程序 383