熟练掌握Java语言是Java应用开发的第一个台阶,能够深入理解Java程序设计,是学习Java系列技术的必要前提。本书结合编者多年的开发和教学经验,从入门者的学习特点出发,循序渐进地带领读者走进Java世界,使得"开头并不难”。 全书分为7个部分,包括Java语言的类、类之间的关系、异常处理、核心API的使用、特性总结、JDK8及以后版本特性总结和编程实战。其中,编程实战部分提供了连连看游戏的完整实现过程,帮助读者借助教材自主实现该案例,快速提高Java程序设计实践能力。书中内容打破了传统的堆砌知识点的方式,从解决问题的角度诠释面向对象程序设计,涵盖了企业实际工作中常用的技能与知识点,简单明了,易读易懂。
孙祥,是临沂科技职业学院计算机应用技术专业带头人,具有十余年软件开发、企业管理经验,曾任职技术总监、副总经理等管理岗位,主导参与过金锣集团、碧生源集团、鲁西化工集团等十余家集团企业信息化建设。长期从事软件架构、软件开发、电子支付相关工作,具有丰富的实践经验,发表学术论文2篇,获得临沂市科学技术奖叁等奖一项。
目录
第一部分 Java语言的类
第1章 Java语言概述 002
1.1 Java语言的特点 002
1.2 面向对象的基本概念 003
1.3 第一个Java类 004
1.3.1 环境搭建 004
1.3.2 编译运行Java类 006
1.4 本章小结 007
第2章 Java类的组成 008
2.1 类 008
2.2 属性 009
2.3 方法 009
2.3.1 方法的声明形式 009
2.3.2 方法重载 010
2.4 构造方法 011
2.5 块 014
2.6 内部类 015
2.7 本章小结 015
第3章 访问权限修饰符 016
3.1 包 016
3.2 4种访问权限修饰符 017
3.3 封装性 017
3.4 本章小结 018
第4章 数据类型 019
4.1 基本数据类型 019
4.2 引用类型 020
4.3 字符串类型 020
4.4 包装器类型 021
4.5 值传递 022
4.6 本章小结 023
第5章 高级类特性 024
5.1 static修饰符 024
5.2 final修饰符 027
5.3 Java类中的变量总结 028
5.4 本章小结 029
第6章 操作符、流程控制 030
6.1 操作符 030
6.2 流程控制 034
6.2.1 流程控制概述 034
6.2.2 使用break/continue语句控制循环 037
6.2.3 “中断”语句比较 038
6.3 本章小结 039
第7章 第一部分自我测试 040
第二部分 类之间的关系
第8章 关联关系 044
8.1 关联关系的表示 044
8.2 关联关系的方向 045
8.3 关联关系的多重性 046
8.4 数组 046
8.4.1 数组的基本概念 046
8.4.2 数组的创建及长度 047
8.4.3 数组元素的访问 048
8.4.4 数组的赋值 049
8.4.5 多维数组 049
8.4.6 数组的复制 050
8.4.7 Arrays类 051
8.5 本章小结 052
第9章 依赖关系 053
9.1 Java语言中依赖关系的表示 053
9.2 依赖与关联的区别 053
9.3 本章小结 054
第10章 继承关系 055
10.1 Java语言的继承 055
10.2 继承中构造方法的调用 056
10.3 方法覆盖 059
10.4 抽象类 061
10.5 抽象方法 062
10.6 多态性 063
10.7 this和super关键字 065
10.8 final在继承中的使用 066
10.9 static、abstract、final修饰符总结 067
10.10 关联和继承 067
10.11 Object类 068
10.12 本章小结 071
第11章 实现关系 072
11.1 接口的定义 072
11.2 类与接口之间的关系:实现 072
11.3 接口的作用 074
11.4 接口的语法细节 075
11.5 Comparable接口 076
11.6 本章小结 079
第12章 第二部分自我测试 080
第三部分 异 常 处 理
第13章 Java应用异常处理 085
13.1 异常概述 085
13.2 Java标准异常类型 086
13.3 处理异常 087
13.4 抛出异常 092
13.5 为何要抛出异常 092
13.6 如何处理抛出的异常 093
13.7 自定义异常类 095
13.8 throw与throws总结 096
13.9 try-finally的作用 097
13.10 再次抛出异常 098
13.11 本章小结 098
第14章 第三部分自我测试 099
第四部分 核心API的使用
第15章 集合框架 104
15.1 泛型快速入门 104
15.2 Java集合框架概述 106
15.3 Iterator接口 106
15.4 Collection接口及其子接口 107
15.5 List接口的实现类 108
15.6 Set接口的实现类 109
15.7 Map接口的实现类 113
15.8 Collections类 116
15.9 集合与数组之间的转换 116
15.10 本章小结 118
第16章 输入/输出系统 119
16.1 File类 119
16.2 文件过滤器 120
16.3 I/O流的分类 122
16.4 I/O编程 123
16.5 本章小结 126
第17章 GUI编程 127
17.1 GUI编程概述 127
17.2 Swing中的组件 128
17.3 Swing中的布局 129
17.4 Swing中的事件处理 131
17.5 使用内部类进行事件处理 132
17.6 使用匿名内部类进行事件处理 133
17.7 GUI中的并发任务 134
17.8 本章小结 135
第18章 多线程编程 136
18.1 与线程有关的API 136
18.2 创建线程 137
18.3 线程同步 140
18.4 线程通信 142
18.5 Thread类的方法 145
18.6 线程死锁 146
18.7 守护线程 148
18.8 本章小结 148
第19章 Java网络编程 149
19.1 TCP/IP概述 149
19.2 使用Socket进行基于TCP的 编程 150
19.3 使用Datagram进行基于UDP的 编程 154
19.4 本章小结 155
第20章 其他常用API 157
20.1 日期 157
20.2 国际化 160
20.3 格式化 163
20.4 大数据类型 165
20.5 反射 166
20.6 本章小结 168
第21章 第四部分自我测试 169
第五部分 特 性 总 结
第22章 泛型 174
22.1 泛型概述 174
22.2 定义简单泛型类 175
22.3 泛型与继承 175
22.4 通配符 176
22.5 泛型方法 177
22.6 本章小结 177
第23章 枚举 178
23.1 枚举概述 178
23.2 创建枚举 180
23.3 Enum类 180
23.4 遍历Enum的值 181
23.5 Enum的细节问题 181
23.6 本章小结 182
第24章 其他特性 183
24.1 增强for循环 183
24.2 自动装箱、自动拆箱 184
24.3 静态导入 185
24.4 可变参数 185
24.5 Annotation 186
24.6 本章小结 187
第25章 第五部分自我测试 188
第六部分 JDK8及以后版本特性总结
第26章 Lambda表达式 192
26.1 Lambda表达式的基本语法 192
26.2 函数式接口 193
26.3 变量作用域 194
26.4 方法引用 195
26.5 本章小结 197
第27章 Stream 198
27.1 Stream概述 198
27.2 创建Stream 199
27.3 Stream的中间操作 200
27.4 Stream的终端操作 201
27.5 串行流与并行流 203
27.6 本章小结 203
第28章 Optional类 204
28.1 Optional类入门 204
28.2 Optional类中的方法 205
28.3 创建Optional对象 206
28.4 获取Optional中的值 206
28.5 本章小结 207
第29章 日期和时间API 208
29.1 更新的日期和时间API概述 208
29.2 本地化日期和时间API 210
29.3 使用时区的日期和时间API 215
29.4 操纵、解析和格式化日期 217
29.5 本章小结 222
第30章 第六部分自我测试 223
第七部分 编 程 实 战
第31章 连连看游戏实现 227
31.1 搭建工程基本结构 227
31.2 实现静态界面 229
31.2.1 搭建只显示菜单的 界面 230
31.2.2 实现展现游戏场景和
时间条的面板 232
31.2.3 将面板添加到游戏框架 235
31.3 随机生成游戏场景 236
31.3.1 创建抽象类 AbstractGameModel 236
31.3.2 创建实现类 GameModelDefault 239
31.3.3 随机产生游戏场景 240
31.4 实现直连消除版本 241
31.4.1 修改AbstractGameModel类 241
31.4.2 修改GameModelDefault类 243
31.4.3 修改MainPanel类 244
31.4.4 启动MainPanel类创建的 线程对象 248
31.5 实现一折相连消除版本 249
31.5.1 创建Node类封装折点 信息 249
31.5.2 修改AbstractGameModel类 251
31.5.3 创建子类 GameModelOneTurn 252
31.5.4 修改MainPanel类 252
31.6 实现两折相连消除版本 253
31.6.1 在AbstractGameModel类中添加新算法 254
31.6.2 创建新的模型子类 GameModelTwoTurn 255
31.6.3 修改MainPanel类 255
31.7 添加限时功能 256
31.8 添加重新开始游戏功能 258
31.9 添加可选择关卡功能 258
31.9.1 在AbstractGameModel类中实现算法 259
31.9.2 修改MainPanel类 259
31.9.3 修改MainFrame类 260
31.10 添加可选择模型功能 261
31.11 添加可选择图标功能 261
31.12 本章小结 262
附录A 企业关注的技能 263
A.1 Java语言的类 263
A.2 类之间的关系 268
A.3 异常处理 272
A.4 核心API的使用 273
A.5 特性总结 278