第1章 Java入门基础 1
1.1 了解Java语言 1
1.1.1 语言概念 1
1.1.2 发展历史 2
1.1.3 语言特点 3
1.1.4 应用领域 4
1.1.5 Java 8.0新特性 5
1.2 平台架构 7
1.2.1 Java EE 8
1.2.2 Java SE 8
1.2.3 Java ME 8
1.3 开发环境——JDK 8
1.3.1 下载JDK 8
1.3.2 安装JDK 10
1.3.3 配置JDK 11
1.4 实验指导——开发MyTest程序 12
1.5 开发工具——MyEclipse 13
1.5.1 了解MyEclipse 13
1.5.2 安装MyEclipse 13
1.6 实验指导——创建第一个Java程序 15
1.7 习题 18
第2章 Java基本语法 19
2.1 数据类型 19
2.1.1 数据类型分类 19
2.1.2 整数类型 20
2.1.3 浮点型 21
2.1.4 字符型 22
2.1.5 布尔类型 22
2.1.6 引用数据类型 23
2.2 变量 23
2.2.1 变量的声明 23
2.2.2 变量的赋值 24
2.2.3 变量的作用域 25
2.3 常量 26
2.4 基本数据类型转换 26
2.4.1 自动类型转换 27
2.4.2 强制类型转换 27
2.5 运算符和表达式 28
2.5.1 算术运算符 28
2.5.2 赋值运算符 29
2.5.3 关系运算符 30
2.5.4 逻辑运算符 31
2.5.5 位运算符 32
2.5.6 其他运算符 33
2.5.7 运算符的优先级 35
2.6 关键字列表 36
2.7 Java编码规范 36
2.7.1 代码编写规则 37
2.7.2 常用代码注释 37
2.8 实验指导——计算圆的周长和面积 38
2.9 习题 40
第3章 流程控制语句 42
3.1 算法的描述方式 42
3.1.1 自然语言 42
3.1.2 传统流程图 43
3.1.3 N-S结构化流程图 43
3.1.4 伪代码 44
3.2 条件语句 44
3.2.1 简单的if条件语句 44
3.2.2 if-else条件语句 45
3.2.3 if-else if-else条件语句 47
3.2.4 switch语句 49
3.2.5 if语句和switch语句的区别 52
3.2.6 if语句的嵌套 52
3.3 循环语句 54
3.3.1 for语句 54
3.3.2 while语句 55
3.3.3 do-while语句 57
3.3.4 foreach语句 59
3.3.5 死循环 60
3.3.6 循环的嵌套 61
3.4 跳转语句 62
3.4.1 break语句 63
3.4.2 continue语句 63
3.4.3 return语句 64
3.5 实验指导——打印指定行数的杨辉三角 66
3.6 实验指导——解决与李白喝酒的问题 67
3.7 习题 68
第4章 Java数组应用 71
4.1 一维数组 71
4.1.1 声明一维数组 71
4.1.2 初始化一维数组 72
4.2 获取一维数组的元素 73
4.2.1 获取单个元素 73
4.2.2 获取全部元素 74
4.3 二维数组 74
4.3.1 声明二维数组 74
4.3.2 初始化二维数组 75
4.4 获取二维数组的元素 76
4.4.1 获取单个元素 76
4.4.2 获取全部元素 76
4.4.3 获取指定行的元素 77
4.4.4 获取指定列的元素 78
4.5 多维数组 78
4.6 实验指导——打印螺旋矩阵 79
4.7 Arrays类操作数组 81
4.7.1 数组排序 82
4.7.2 比较数组 83
4.7.3 填充数组 83
4.7.4 查找数组 84
4.7.5 复制数组 86
4.8 数组排序方法 88
4.8.1 冒泡排序法 88
4.8.2 选择排序法 90
4.8.3 直接插入法 91
4.8.4 快速排序法 92
4.9 习题 93
第5章 集合处理 96
5.1 集合类概述 96
5.1.1 集合中的接口 96
5.1.2 接口实现类 97
5.2 Collection接口 98
5.3 List集合 100
5.3.1 ArrayList类 100
5.3.2 LinkedList类 103
5.4 Set集合 105
5.4.1 HashSet类 105
5.4.2 TreeSet类 106
5.5 Map集合 109
5.6 Collections类 111
5.6.1 正向排序 111
5.6.2 逆向排序 113
5.6.3 填充 114
5.6.4 复制 115
5.7 实验指导——使用泛型集合 116
5.8 习题 118
第6章 字符串处理 120
6.1 String类概述 120
6.2 String类操作字符串 122
6.2.1 获取字符串长度 122
6.2.2 比较字符串 122
6.2.3 替换字符串 126
6.2.4 提取字符串 127
6.2.5 分割字符串 129
6.2.6 连接字符串 129
6.2.7 转换字符串 130
6.2.8 格式化字符串 131
6.2.9 其他操作 132
6.3 实验指导——字符串的加密和解密 134
6.4 StringBuilder类概述 135
6.5 StringBuilder类操作字符串 136
6.5.1 追加字符串 136
6.5.2 插入字符串 136
6.5.3 反转字符串 137
6.5.4 替换字符串 138
6.5.5 删除字符串 138
6.6 正则表达式操作字符串 139
6.6.1 元字符 139
6.6.2 限定符 140
6.6.3 使用元字符和限定符 141
6.7 实验指导——正则表达式匹配IP地址 142
6.8 实验指导——判断字符是英文还是汉字 143
6.9 习题 144
第7章 类和对象 147
7.1 类 147
7.1.1 声明类 147
7.1.2 类的成员 148
7.1.3 构造方法 151
7.1.4 main()方法 152
7.2 对象 152
7.2.1 创建对象 152
7.2.2 使用对象 153
7.2.3 销毁对象 154
7.3 实验指导——创建和使用类与对象 154
7.4 内部类 155
7.4.1 成员内部类 155
7.4.2 局部内部类 156
7.4.3 嵌套内部类 157
7.4.4 匿名内部类 158
7.5 抽象类 159
7.6 this关键字 161
7.6.1 构造方法中使用this 161
7.6.2 this作为参数 162
7.6.3 匿名内部类中使用this 163
7.7 包 164
7.7.1 系统包 164
7.7.2 自定义包 165
7.8 实验指导——不同包之间类的使用 166
7.9 习题 166
第8章 面向对象的特征 169
8.1 封装 169
8.1.1 了解封装 169
8.1.2 实现封装 170
8.2 实验指导——通过代码封装Book类并测试 172
8.3 继承 173
8.3.1 了解继承 173
8.3.2 实现继承 174
8.3.3 使用super关键字 176
8.3.4 使用final关键字 177
8.3.5 使用继承的原则 178
8.4 实验指导——利用内部类实现多重继承 180
8.5 多态 182
8.5.1 了解多态 182
8.5.2 实现多态 183
8.5.3 方法重载 186
8.6 习题 189
第9章 Java中的枚举和接口 192
9.1 枚举 192
9.1.1 枚举声明 192
9.1.2 枚举类 193
9.1.3 为枚举添加方法 195
9.1.4 EnumMap与EnumSet 197
9.2 接口 199
9.2.1 接口概念和意义 199
9.2.2 接口声明和继承 199
9.2.3 接口实现 200
9.2.4 接口回调 201
9.2.5 接口和抽象类的区别 202
9.3 内部类 203
9.3.1 局部内部类 204
9.3.2 静态内部类 205
9.4 匿名类 206
9.5 实验指导——认识动物 207
9.6 习题 209
第10章 Java常用工具类 212
10.1 Object类 212
10.2 包装类 214
10.2.1 Number类 214
10.2.2 Double类与Float类 214
10.2.3 与整型有关包装类 216
10.2.4 Character类 217
10.2.5 Boolean类 219
10.3 日期操作类 219
10.3.1 Date类 219
10.3.2 Calendar类 221
10.4 实验指导——日期的高级操作 223
10.5 格式化日期类 225
10.5.1 DateFormat类 225
10.5.2 SimpleDateFormat类 226
10.6 数学操作类 228
10.6.1 静态常量 228
10.6.2 静态方法 228
10.7 实验指导——格式化数字 231
10.8 随机数类 233
10.8.1 随机数的概念 233
10.8.2 随机数的算法 233
10.8.3 随机数的实现 233
10.9 实验指导——根据生成的随机数求最值 235
10.10 习题 236
第11章 Java中的异常处理 238
11.1 什么是异常 238
11.2 Java异常类型 239
11.3 捕获异常 241
11.3.1 异常语句结构 241
11.3.2 使用try-catch语句捕获异常 241
11.3.3 使用多重catch语句捕获异常 243
11.3.4 使用try-catch-finally语句捕获异常 244
11.4 自定义异常 246
11.5 抛出异常和声明异常 248
11.5.1 抛出异常 248
11.5.2 声明异常 250
11.5.3 throw和throws的区别 251
11.6 实验指导——校验购买数量 252
11.7 习题 254
第12章 Java文件处理 257
12.1 Java流简介 257
12.1.1 理解输入/输出流 257
12.1.2 输入流 258
12.1.3 输出流 259
12.1.4 系统流 260
12.2 字节 流应用 262
12.2.1 字节 数组输入/输出流 262
12.2.2 文件字节 输入/输出流 264
12.2.3 对象输入/输出流 268
12.2.4 缓冲区输入/输出流 269
12.2.5 数据输入/输出流 271
12.2.6 字节 打印流 273
12.3 字符流应用 276
12.3.1 文件字符输入/输出流 276
12.3.2 字符缓存区输入/输出流 279
12.3.3 字符打印流 280
12.4 文件操作 282
12.5 随机访问文件 283
12.6 实验指导——随机读取商品信息 285
12.7 习题 287
第13章 数据库访问对象 289
13.1 认识数据库 289
13.1.1 了解数据库 289
13.1.2 数据库分类 290
13.2 认识JDBC 290
13.2.1 了解JDBC 291
13.2.2 了解JDBC API 291
13.2.3 JDBC驱动类型 292
13.2.4 连接数据库步骤 293
13.3 JDBC驱动程序 294
13.3.1 加载JDBC驱动程序 294
13.3.2 数据库驱动类 296
13.4 数据库连接对象 296
13.4.1 提供JDBC连接的URL 296
13.4.2 创建数据库连接 297
13.4.3 数据库连接接口 298
13.5 数据操作对象 301
13.5.1 Statement对象 301
13.5.2 PreparedStatement对象 303
13.5.3 CallableStatement对象 305
13.6 查询结果集接口 307
13.6.1 使用ResultSet 307
13.6.2 ResultSet的方法 308
13.6.3 ResultSetMetaData对象 310
13.7 关闭数据库连接 312
13.8 实验指导——操作会员类的数据 312
13.9 习题 316
第14章 Swing界面设计编程 319
14.1 Swing简介 319
14.2 容器类组件 321
14.2.1 容器组件层次结构 321
14.2.2 JFrame窗口 322
14.2.3 JPanel面板 324
14.3 布局管理器 325
14.3.1 边框布局管理器 325
14.3.2 流式布局管理器 327
14.3.3 卡片布局管理器 328
14.3.4 网格布局管理器 329
14.3.5 网格包布局管理器 330
14.3.6 盒布局管理器 333
14.4 基础组件 334
14.4.1 按钮组件 334
14.4.2 标签组件 336
14.4.3 单行文本框组件 337
14.4.4 文本域组件 339
14.4.5 复选框组件 340
14.4.6 单选按钮组件 341
14.4.7 下拉列表组件 342
14.5 高级组件 345
14.5.1 表格组件 346
14.5.2 标签面板组件 347
14.5.3 树组件 350
14.5.4 文件选择器组件 353
14.6 对话框 355
14.6.1 输入对话框 355
14.6.2 消息对话框 356
14.6.3 确认对话框 356
14.6.4 选项对话框 357
14.7 实验指导——制作计算器 358
14.8 习题 361
第15章 多线程处理 363
15.1 多线程 363
15.1.1 了解进程 363
15.1.2 了解线程 364
15.2 创建线程 364
15.2.1 使用Thread类 364
15.2.2 使用Runnable接口 368
15.2.3 两种方法比较 369
15.3 线程的生命周期 370
15.4 实验指导——生命周期例子演示 371
15.5 线程的优先级和执行顺序 373
15.5.1 优先级概述 374
15.5.2 使用优先级 374
15.6 线程同步 376
15.7 结束线程 377
15.8 习题 377
第16章 餐饮管理系统 379
16.1 系统分析 379
16.1.1 需求分析 379
16.1.2 功能分析 380
16.1.3 系统功能模块划分 381
16.2 数据库设计 382
16.2.1 概念设计 382
16.2.2 逻辑设计 383
16.3 公共模块设计 386
16.3.1 数据访问层 386
16.3.2 模型类 389
16.3.3 工具类 391
16.4 登录模块 391
16.5 管理员模块设计 394
16.5.1 界面设计 394
16.5.2 功能切换模块 395
16.5.3 人事管理模块 395
16.5.4 登录管理模块 396
16.5.5 菜谱管理模块 397
16.5.6 成本管理模块 398
16.5.7 万年历模块 398
16.6 收银员模块设计 399
习题答案 400