
本书从程序设计的角度,介绍如何设计有Java特色的应用程序。全书共分三篇,第一篇是Java基础,包含第1~6章,介绍Java的开发环境、程序开发过程、基本的语法及语句,重点介绍应用Java语言开发简单Java程序的过程,强调程序的设计过程和调试过程;第二篇是Java面向对象程序设计,包含第7~20章,介绍应用Java语言的类、对象、接口来设计面向对象的Java程序,通过大量示例让学生在学习程序的过程中逐步理解什么是面向对象程序设计,如何设计有Java特色的面向对象程序,最后给出有Java语言特色的简单框架程序;第三篇是Java应用开发,包含第21~26章,给出一个完整的应用示例,采用层层推进、模块组合的方式,从简单程序开始,逐步增加内容,最后完成一个有一定规模且实用的学生成绩查询软件。
本书作为省级线上线下混合式一流本科课程的配套教材,提供微课视频、课程测试题目、作业题目等丰富的配套课程资源,为组织在线教学或者线上线下混合式教学提供便利。
本书内容讲述浅显易懂,按照问题来组织内容,每章解决一类问题,围绕问题来设计程序,讲解所用到的相关知识,让读者通过示例来学习Java程序设计,逐步培养Java程序设计思路。本书既可以作为高等学校学生学习Java程序设计的教材,也可以作为自学Java语言读者的参考书。
第一篇Java基础
第1章第一个Java程序/3
1.1示例程序3
1.1.1HelloWorld程序3
1.1.2HelloWorld程序分析
4
1.2相关知识5
1.2.1下载安装工具包5
1.2.2配置6
1.2.3编辑程序6
1.2.4编译运行程序8
1.3训练程序9
1.3.1程序分析9
1.3.2参考程序9
1.3.3程序调试9
1.3.4进阶训练11
1.4拓展知识11
1.4.1开发工具11
1.4.2Java API文档12
1.4.3编码规范12
1.5实做程序13
第2章显示学生成绩/15
2.1示例程序15
2.1.1显示学生信息15
2.1.2引入变量16
2.1.3增加注释16
2.2相关知识18
2.2.1标识符和关键字18
2.2.2数据类型和变量18
2.2.3运算符和表达式20
2.2.4输入语句23
2.3训练程序24
2.3.1程序分析24
2.3.2参考程序24
2.3.3进阶训练26
2.4拓展知识26
2.4.1Java虚拟机26
2.4.2变量存储27
2.4.3变量类型转换27
2.5实做程序28
第3章学生成绩分级/33
3.1示例程序33
3.2相关知识34
3.2.1基本语句34
3.2.2条件分支语句35
3.2.3多分支语句36
3.3训练程序36
3.3.1程序分析37
3.3.2参考程序37
3.3.3进阶训练38
3.4拓展知识39
3.4.1分支语句讨论39
3.4.2数据合法性检查40
3.5实做程序42
第4章计算平均成绩/46
4.1示例程序46
4.1.1计算平均成绩46
4.1.2引入常量47
4.1.3未知人数48
4.2相关知识50
4.2.1for循环语句50
4.2.2循环累加51
4.2.3while循环语句52
4.3训练程序53
4.3.1程序分析53
4.3.2参考程序53
4.3.3进阶训练54
4.4拓展知识55
4.4.1循环语句讨论55
4.4.2循环边界检查55
4.5实做程序56
第5章显示班级成绩单/61
5.1示例程序61
5.1.1班级平均成绩61
5.1.2显示最高成绩62
5.2相关知识64
5.2.1一维数组64
5.2.2多维数组64
5.2.3String类64
5.3训练程序66
5.3.1程序分析66
5.3.2参考程序67
5.3.3进阶训练68
5.4拓展知识68
5.4.1数组讨论68
5.4.2数组的存储69
5.5实做程序70
第6章显示学生基本信息/73
6.1示例程序73
6.1.1程序实现73
6.1.2处理部分提取74
6.1.3读入部分提取75
6.2相关知识76
6.2.1Java方法76
6.2.2参数传递77
6.3训练程序78
6.3.1程序分析78
6.3.2参考程序79
6.3.3进阶训练79
6.4拓展知识80
6.4.1方法重构80
6.4.2方法存储80
6.4.3main()方法说明80
6.5实做程序82
Java基础与应用(第2版)第二篇面向对象程序设计
第7章简单Student类/87
7.1示例程序87
7.1.1显示学生信息87
7.1.2增加测试类89
7.2相关知识90
7.2.1Java类定义90
7.2.2类的方法91
7.3训练程序92
7.3.1程序分析92
7.3.2参考程序92
7.3.3进阶训练93
7.4拓展知识93
7.4.1为什么引入类93
7.4.2变量作用域94
7.5实做程序95
第8章Student类对象/98
8.1示例程序98
8.1.1访问控制权限98
8.1.2添加构造方法99
8.2相关知识101
8.2.1构造方法101
8.2.2访问权限控制102
8.2.3类的组成部分103
8.3训练程序103
8.3.1程序分析104
8.3.2参考程序104
8.3.3进阶训练105
8.4拓展知识106
8.4.1对象存储106
8.4.2对象相等107
8.5实做程序109
第9章完善Student类/112
9.1示例程序112
9.1.1添加置取方法112
9.1.2增加构造方法113
9.1.3完整的Student类
115
9.2相关知识117
9.2.1置取方法117
9.2.2对象this119
9.3训练程序120
9.3.1程序分析120
9.3.2参考程序121
9.3.3进阶训练122
9.4拓展知识123
9.4.1类的封装123
9.4.2置取方法讨论123
9.4.3参数传递深入讨论
124
9.5实做程序126
第10章Student类组合/130
10.1示例程序130
10.1.1MobilePhone类
130
10.1.2增加机主属性132
10.2相关知识134
10.2.1对象属性134
10.2.2类的组合关系135
10.3训练程序136
10.3.1程序分析136
10.3.2参考程序136
10.3.3进阶训练138
10.4拓展知识138
10.4.1组合讨论138
10.4.2组合与封装140
10.5实做程序143
第11章Student类方法重载/147
11.1示例程序147
11.1.1构造方法重载147
11.1.2普通方法重载148
11.2相关知识149
11.3训练程序150
11.3.1程序分析151
11.3.2参考程序151
11.3.3进阶训练152
11.4拓展知识153
11.4.1再论参数传递153
11.4.2对象复制154
11.5实做程序155
第12章Student类实例计数/158
12.1示例程序158
12.1.1显示实例顺序158
12.1.2获得学生对象个数
159
12.2相关知识160
12.2.1静态属性与实例属性
160
12.2.2再论对象创建过程
162
12.3训练程序163
12.3.1程序分析163
12.3.2参考程序163
12.4拓展知识164
12.4.1属性与局部变量
164
12.4.2静态属性与方法存储
165
12.4.3单个实例166
12.5实做程序167
第13章泛化类Person/169
13.1示例程序169
13.1.1泛化类Person的
实现169
13.1.2子类Student170
13.1.3Student对象初始化
171
13.2相关知识172
13.2.1类的继承172
13.2.2关键字super173
13.3训练程序174
13.3.1程序分析174
13.3.2参考程序174
13.3.3进阶训练175
13.4拓展知识175
13.4.1调用构造方法175
13.4.2继承与组合177
13.5实做程序179
第14章对象多态/182
14.1示例程序182
14.1.1重写display()方法
182
14.1.2向上转型184
14.2相关知识185
14.2.1方法重写185
14.2.2对象上转型186
14.3训练程序187
14.3.1程序分析188
14.3.2参考程序188
14.3.3进阶训练190
14.4拓展知识190
14.4.1动态绑定190
14.4.2多态讨论191
14.5实做程序193
第15章抽象类/195
15.1示例程序195
15.1.1方法抽象195
15.1.2抽象方法display()
195
15.2相关知识197
15.2.1抽象类定义197
15.2.2抽象类说明198
15.3训练程序198
15.3.1程序分析199
15.3.2参考程序199
15.3.3进阶训练201
15.4拓展知识201
15.5实做程序202
第16章接口设计/204
16.1示例程序204
16.1.1定义接口Moveable
204
16.1.2应用Moveable实现
多态206
16.2相关知识207
16.2.1接口定义207
16.2.2接口与抽象类比较
209
16.3训练程序211
16.3.1程序分析211
16.3.2参考程序211
16.3.3进阶训练213
16.4拓展知识213
16.4.1接口讨论213
16.4.2接口应用215
16.4.3接口的增强215
16.5实做程序216
第17章异常处理/218
17.1示例程序218
17.1.1程序异常实例218
17.1.2受检异常220
17.2相关知识221
17.2.1异常处理结构221
17.2.2常见异常类222
17.3训练程序223
17.3.1程序分析223
17.3.2参考程序223
17.3.3进阶训练225
17.4拓展知识226
17.4.1异常处理讨论226
17.4.2防御性编程227
17.5实做程序230
第18章包结构设计/232
18.1示例程序232
18.1.1按包组织程序232
18.1.2导入手机类234
18.2相关知识235
18.2.1包定义235
18.2.2其他包中类的引用
237
18.3训练程序237
18.3.1程序分析238
18.3.2参考程序238
18.4拓展知识240
18.4.1Java基础类库包
240
18.4.2包的设计241
18.5实做程序242
第19章简单框架设计/243
19.1示例程序243
19.1.1简单框架243
19.1.2增加功能246
19.2相关知识247
19.2.1多态与框架247
19.2.2依赖关系247
19.3训练程序248
19.3.1程序分析248
19.3.2参考程序249
19.4拓展知识252
19.4.1框架设计252
19.4.2框架设计讨论253
19.5实做程序254
第20章带配置文件的框架/255
20.1示例程序255
20.1.1装入Person类255
20.1.2显示名字257
20.2相关知识259
20.2.1反射机制259
20.2.2反射机制应用260
20.3训练程序260
20.3.1程序分析260
20.3.2参考程序261
20.4拓展知识264
20.4.1反射机制讨论264
20.4.2配置文件264
20.4.3注解265
20.5实做程序266
第三篇Java应用开发
第21章学生成绩排序输出/269
21.1开发任务269
21.2程序实现及分析270
21.2.1数组排序270
21.2.2List排序273
21.2.3List自动排序277
21.2.4通用输出280
21.3集合相关类库285
21.3.1Collection与Collections
286
21.3.2List与ArrayList
287
21.3.3Map与HashMap
288
21.3.4Set与TreeSet289
21.3.5泛型291
21.4实做程序292
第22章学生信息保存/295
22.1开发任务295
22.2功能实现及分析296
22.2.1文件保存功能296
22.2.2数据库保存功能
300
22.2.3重构程序结构304
22.3文件操作相关类库306
22.3.1I/O流306
22.3.2I/O操作步骤308
22.4数据库操作311
22.4.1数据库操作311
22.4.2数据库操作步骤
313
22.5实做程序315
第23章图形界面成绩管理/319
23.1开发任务319
23.2功能实现及分析321
23.2.1图形用户界面321
23.2.2成绩管理功能325
23.3图形界面基础类库334
23.3.1Java图形界面334
23.3.2组件类336
23.3.3事件类与接口339
23.4实做程序340
第24章网上学生成绩查询/343
24.1开发任务343
24.2功能实现及分析344
24.2.1简单网络通信功能
344
24.2.2网络查询348
24.3网络编程相关类库353
24.3.1Socket编程概念
353
24.3.2Socket相关类354
24.4实做程序355
第25章多用户查询学生成绩/357
25.1开发任务357
25.2功能实现及分析358
25.2.1简单多线程程序一
358
25.2.2简单多线程程序二
360
25.2.3多线程网络查询
363
25.3多线程相关类库372
25.4实做程序374
第26章基于新特性的重构和
扩展/37526.1开发任务375
26.2程序实现及分析376
26.2.1成绩排序功能重构
376
26.2.2成绩处理功能扩展
378
26.3新特性相关类库380
26.3.1Java新特性380
26.3.2函数式编程381
26.3.3流式编程383
26.4实做程序386
附录A推荐书目/388
本书作为河北省省级线上线下混合式一流本科课程的配套教材,提供微课视频、课程测试题目、作业题目等丰富的配套课程资源,让读者通过示例来学习Java程序设计,逐步培养Java程序设计思路。本书既可以作为高等学校学生学习Java程序设计的教材,也可以作为自学Java语言读者的参考书。
王养廷,华北科技学院,教师,教授,男,54,长期从事计算机软件开发和计算机教学工作,负责和参与多项横向项目的软件开发工作;主持编写过多部教材《Java基础与应用》,《UML基础与应用》等;主要讲授课程:面向对象程序设计Java,编译原理;主讲课程“面向对象程序设计Java”被认定为河北省线上线下混合式一流本科课程。