Java程序设计实战教程

针对初学者的Java开发教材,实战指导性强
分享 推荐 1 收藏 4 阅读 251
李西明 (作者)

关于本书的内容有任何问题,请联系 张斌

与该作者编写的Java Web、SSM、SSH形成Java开发系列。
内容上比传统教材增加了类似多线程、反射和网络编程的内容,方便教师自由裁剪,也有利于学有余力的学生自学。
使用了新版本JDK12作为基础版本来讲解。
每章有习题和上机练习,方便教师布置作业并检验学习效果。配套资源较为丰富。

内容摘要

本书从Java初学者的角度出发,用通俗易懂的语言、贴近实际生活的实例,详细地介绍使用Java语言进行程序开发须掌握的知识和技术,帮助读者快速掌握Java程序开发的技能。全书共14章,分别为Java程序设计入门、Java语言基础、流程控制、方法与数组、面向对象基础、深入面向对象、常用类、异常、集合类、File与I/O流、多线程、图形用户界面、网络编程、反射。随书电子资源中还提供了综合项目实训,以巩固所学知识,培养读者的项目开发能力。

目录

第 1章 Java程序设计入门 1
1.1 Java概述 1
1.1.1 Java语言简介 1
1.1.2 Java语言的优点 2
1.1.3 Java的版本 2
1.2 搭建Java开发环境 3
1.2.1 JDK与跨平台 3
1.2.3 JDK14的下载 4
1.3 第 一个Java程序 4
1.3.1 HelloWorld程序的编写 4
1.3.2 HelloWorld程序的编译与运行 5
1.3.3 HelloWorld程序的运行机制 7
1.3.4 HelloWorld程序的纠错 7
1.4 环境变量的配置 9
1.5 集成开发工具Eclipse 12
1.5.1 Eclipse简介 12
1.5.2 使用Eclipse开发HelloWorld项目 13
1.6 输出语句 16
1.6.1 输出换行 16
1.6.2 输出制表位 16
1.6.3 输出其他转义字符 18
1.7 上机实验 19
任务一:输出爱心形状 19
任务二:制作主菜单界面 19
第 2章 Java语言基础 22
2.1 基本语法 22
2.1.1 编码格式 22
2.1.2 注释 23
2.1.3 标识符 25
2.1.4 关键字 25
2.2 变量与常量 26
2.2.1 变量简介 26
2.2.2 变量的声明 26
2.2.3 数据类型 27
2.2.4 变量的赋值 30
2.2.5 数据类型转换 31
2.2.6 变量的使用 32
2.2.7 变量的作用域 33
2.2.8 常量 34
2.3 运算符 34
2.3.1 赋值运算符 34
2.3.2 算术运算符 35
2.3.3 比较运算符 39
2.3.4 逻辑运算符 40
2.3.5 位运算符 42
2.3.6 三元运算 46
2.3.7 运算符的优先级 47
2.3.8 接收键盘录入数据 48
2.4 上机实验 49
任务一:奇偶判断 49
任务二:变量值交换 50
任务三:判断闰年 50
第3章 流程控制 52
3.1 流程控制分类 52
3.2 if条件语句 52
3.3 switch条件语句 57
3.4 循环结构语句 62
3.4.1 for循环语句 62
3.4.2 while循环语句 66
3.4.3 do…while循环语句 68
3.4.4 无限循环 70
3.4.5 跳转语句break与continue 71
3.4.6 二重循环 74
3.5 上机实验 76
任务一:生肖属相 76
任务二:班级成绩统计 76
任务三:斐波那契数列 76
任务四:乌龟爬坡 77
第4章 方法与数组 80
4.1 方法 80
4.1.1 方法的定义 80
4.1.2 方法的调用 81
4.1.3 方法的重载 84
4.1.4 方法的递归 85
4.2 一维数组 86
4.2.1 数组概述 86
4.2.2 数组的声明 86
4.2.3 数组的初始化 87
4.2.4 数组的异常 92
4.2.5 数组的使用 92
4.2.6 冒泡排序 95
4.2.7 直接选择排序 96
4.2.8 插入排序 98
4.2.9 数组的逆序 99
4.2.10 Arrays工具类 100
4.3 二维数组 102
4.3.1 二维数组的声明与初始化 102
4.3.2 二维数组的使用 104
4.4 上机实验 105
任务一:学生成绩统计 105
任务二:子公司销售额统计 105
第5章 面向对象基础 108
5.1 面向对象编程简介 108
5.2 类与对象 108
5.2.1 类的定义 108
5.2.2 成员变量 109
5.2.3 成员方法 109
5.2.4 对象的创建 110
5.2.5 局部变量 112
5.2.6 访问对象的属性和方法 113
5.2.7 对象的比较 113
5.3 构造方法 114
5.3.1 构造方法的定义 114
5.3.2 构造方法的重载 116
5.4 封装 118
5.5 this关键字 119
5.6 static关键字 121
5.6.1 静态变量 121
5.6.2 静态方法 123
5.6.3 静态代码块 124
5.7 值传递与引用传递 125
5.8 对象数组 126
5.9 垃圾回收机制 127
5.10 上机实验 128
任务:汽车销售统计 128
第6章 深入面向对象 131
6.1 继承 131
6.1.1 继承的实现 131
6.1.2 方法的重写 134
6.1.3 super关键字 135
6.1.4 final关键字 138
6.2 抽象类与接口 139
6.2.1 抽象类 139
6.2.2 接口 141
6.3 多态 143
6.3.1 多态简介 143
6.3.2 使用继承实现多态 144
6.3.3 使用接口实现多态 145
6.3.4 向上转型 146
6.2.5 向下转型 148
6.3 权限修饰符 150
6.4 上机实验 152
任务:模拟主人养宠物 152
第7章 常用类 154
7.1 Object类 154
7.1.1 Object类的hashCode()方法 154
7.1.2 Object类的getClass()方法 155
7.1.3 Object类的toString()方法 155
7.1.4 Object类的equals()方法 156
7.1.5 equals与==的区别 157
7.1.6 hashCode()与equals()方法的重写 158
7.2 String与StringBuffer类 159
7.2.1 String类 159
7.2.2 StringBuffer类 166
7.3 正则表达式 168
7.3.1 正则表达式简介 168
7.3.2 正则表达式语法 169
7.3.3 正则表达式的验证功能 170
7.3.4 正则表达式的分割功能 170
7.3.5 正则表达式的替换功能 171
7.3.6 正则表达式的分组功能 171
7.3.7 正则表达式的获取功能 173
7.4 包装类 174
7.5 内部类 176
7.6 数学类Math 182
7.7 Random类 182
7.8 日期与时间类 183
7.8.1 Date类 184
7.8.2 DateFormat类 185
7.8.3 SimpleDateFormat类 186
7.8.4 Calendar类 187
7.9 System与Runtime类 189
7.10 上机实验 190
任务一:字符串统计 190
任务二:查找字符串中子字符串出现次数 190
任务三:系统登录 190
任务四:获取文件名与类型 190
第8章 异常 192
8.1异常处理机制及异常分类 192
8.1.1 Java异常处理机制 192
8.1.2 运行时异常与编译时异常 193
8.2 异常处理 194
8.2.1 try…catch处理异常 194
8.2.2 try…catch…finally处理异常 196
8.3 多种异常的处理 198
8.4 手动抛出异常 199
8.5 自定义异常 200
8.6 上机实验 201
任务:智能开关灯应用 201
第9章 集合类 204
9.1 集合基础知识 204
9.2 Collection接口的方法简介 205
9.3 List接口及其实现类 205
9.3.1 List接口简介 205
9.3.2 ArrayList集合 206
9.3.3 Iterator迭代器 210
9.3.4 foreach循环 212
9.3.5 LinkedList集合 212
9.4 Set接口及其实现类 214
9.4.1 HashSet集合 214
9.4.2 TreeSet集合 217
9.5 Map接口及其实现类 223
9.5.1 HashMap集合 224
9.5.2 TreeMap集合 227
9.6 泛型 228
9.6.1 泛型方法 228
9.6.2 泛型类 230
9.7 泛型集合 232
9.7.1 ArrayList泛型集合 233
9.7.2 HashSet泛型集合 235
9.7.3 HashMap泛型集合 235
9.8 枚举类型 237
9.8.1 枚举类型简介 237
9.8.2 枚举类型的应用 237
9.9 上机实验 241
任务:实现斗地主发牌 241
第 10章 File与I/O流 243
10.1 File类 243
10.1.1 File对象的创建 244
10.1.2 File对象的常用方法 244
10.2 字节流 248
10.2.1 字节输入流InputStream 249
10.2.2 字节输出流OutputStream 250
10.2.3 使用字节流实现文件复制 253
10.2.4 带缓冲区的字节流 254
10.3 字符流 255
10.3.1 字符编码 255
10.3.2 字符输入流Reader 257
10.3.3 字符输出流Writer 259
10.3.4 带缓冲区的字符流 260
10.4 转换流 261
10.4.1 InputStreamReader 261
10.4.2 OutputStreamWriter 263
10.5 打印流 263
10.6 对象流 264
10.6.1 对象输出流ObjectOutputStream 264
10.6.2 对象输入流ObjectInputStream 266
10.6.3 对象的遍历 268
10.7 上机实验 269
任务:汽车销售数据持久化 269
第 11章 多线程 271
11.1 进程与线程 271
11.2 实现多线程的方式 271
11.2.1 继承Thread类 271
11.2.2 实现Runnable接口 273
11.2.3 匿名内部类实现多线程 274
11.2.4 主线程与子线程 275
11.3 线程的生命周期与状态 276
11.4 操作线程的方法 277
11.4.1 线程的名字 277
11.4.2 线程的优先级 279
11.4.3 线程的休眠 280
11.4.4 线程的让步 283
11.4.5 线程的插队 284
11.5 线程的同步 286
11.5.1 线程安全问题 286
11.5.2 同步代码块 288
11.5.3 同步方法 291
11.5.4 线程安全问题的解决 291
11.5.5 死锁问题 292
11.6 线程的等待与唤醒 295
11.7 上机实验 299
任务一:解决同时取钱的线程安全问题 299
任务二:交替打印字母数字案例 299
第 12章 图形用户界面 301
12.1 Swing介绍 301
12.1.1 JFrame窗体组件 301
12.1.2 JDialog对话框组件 302
12.1.3 JOptionPane对话框 304
12.1.4 中间容器JPanel与JscrollPane 307
12.1.5 标签组件JLabel 308
12.1.6 文本组件JTextField与JTextArea 309
12.1.7 密码框组件JPasswordField 311
12.1.8 按钮组件 312
12.1.9 JComboBox下拉列表框组件 317
12.1.10 菜单组件 319
12.1.11 ImageIcon图标组件 321
12.1.12 文件选择组件JFileChooser 324
12.2布局管理器 328
12.2.1 流式布局管理器FlowLayout 328
12.2.2 边界布局管理器BorderLayout 329
12.2.3 网络布局管理器GridLayout 331
12.2.4 绝对布局 332
12.3 事件处理 333
12.3.1 动作事件 335
12.3.2 键盘事件 337
12.3.3 鼠标事件 338
12.3.4 窗体事件 341
12.3.5 选项事件 342
12.3.6 表格模型事件 343
12.4 上机实验 347
任务:设计游戏界面 347
第 13章 网络编程 349
13.1 网络通信协议 349
13.1.1 IP地址与端口号 350
13.1.2 InetAddress类 350
13.1.3 UDP与TCP网络协议 352
13.2 UDP网络程序设计 353
13.2.1 DatagramPacket 353
13.2.2 DatagramSocket 354
13.2.3 UDP发送与接收示例程序 355
13.2.4 UDP即时聊天程序 356
13.2.5 图形界面即时聊天案例 359
13.3 TCP网络程序设计 363
13.3.1 ServerSocket 363
13.3.2 Socket 363
13.3.3 简单TCP网络程序 364
13.3.4 多线程与TCP网络程序 368
第 14章 反射 372
14.1 反射简介 372
14.2 反射与Class 类 372
14.3 反射访问构造方法 374
14.4 反射访问成员变量 376
14.5 反射访问成员方法 378

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

李西明,教育、研究背景方面: 1992.9-1996.7山东工业大学,自动化系,获工学学士学位; 2002.9-2005.7暨南大学信息学院,电子系,获工学硕士学位; 2007.9-2011.6华南农业大学,信息学院,获工学博士学位; 2012.3-2013.8 以色列国本·古里安大学自然科学学院,获得以色列政府“杰出博士后研究者项目”资助,博士后研究。 2014.6-2014.7 以色列国本固里安大学,获得本固里安大学资助,访问学者。 工作方面: 1996/07 -- 2002/09,聊城师范学院通信工程系,助教。 2005/07 – 2015/06 华南农业大学现代教育技术中心,工程师、高级工程师。主要负责学校数字化校园规划、建设和维护等工作,历任信息技术部副部长、部长等职 2015/07 至今 华南农业大学数学与信息学院计算机系计算机网络教研室高级工程师。主讲《Java程序设计》等本科及研究生课程。 主持、参与十余项国家、省部级项目。

推荐用户

相关图书

联系客服
联系客服
人邮微信
人邮微信
微信二维码
返回顶部
返回顶部