一、教材的基本信息
1.适用对象
本教材适用于初学Java语言的读者,也适用于大学“Java语言程序设计”课程的教学。
2.具备的知识和能力基础
读者应具备基本的计算机基础知识,了解计算机的基本结构和运行原理,具备一定的资料查阅能力。
3.预期达到的学习效果
通过本教材的学习,读者应熟练掌握Java语言语法规则;理解面向对象程序设计基本思想,能够运用Java语言进行面向对象程序设计;熟悉JavaSE平台开发技术,能够实现简单的JavaSE应用软件开发。
4.编写团队
本教材的作者是由经验丰富的一线骨干教师和企业专家组成,他们不仅在教学中积累了丰富的Java教学经验,而且他们参与了大量的基于Java项目的开发,有着丰富的实践经验。在长期的Java教学中,他们总结了一套行之有效的教学方法,并将这套教学方法的精髓以及在开发过程和教学过程中积累的丰富素材融入这本教材中。本教材第1、2、3、4、5章由兰艳编写,第6、7、8、9、10章由邵欣欣编写,第11章由骆伟编写,第12、13章由安璐编写,第14、15章由徐祥远编写,第16章由赵璘编写,第17、18章由周绍斌编写,第19章由万洪莉编写,第20、21章由付丽梅编写,第22、23章由黄焕焕编写。全教材由周绍斌统稿。由于作者水平有限,教材中的缺漏与错误在所难免,恳请广大读者批评指正。
二、教材的基本结构与内容组织
1.教材的基本结构
本教材遵循TOPCARES教育教学理念,以专业能力培养为导向,通过案例引导、项目驱动、目标检验等内容组织方式,将知识讲解、能力训练、素质培养有机融合在教材中。教材每个单元都是采用项目导向的方式介绍相应的知识点,充分体现“做中学”的教学思路。全教材贯穿一个应用系统-学生成绩管理系统开发的完整过程,按照TOPCARES教学模式将项目的开发过程分为四个阶段:项目分析、项目设计、项目实现和项目升级与改进。教材基本结构设计思路如下图所示。
教材结构示意图
2.教材的内容组织
本教材主要讲解Java语言基本语法、面向对象程序设计方法和基本Java应用系统开发技术。教材共分为三篇:第1篇为Java基础篇,介绍Java的基本运行原理,以及Java语言中变量、运算符、控制语句和方法等的基本语法规则。第2篇为面向对象程序设计篇,介绍Java语言中类与对象、继承、多态、接口等面向对象程序设计的基本原理和语法规则,同时还介绍了编写应用软件常用的数组、集合、字符串、日期、lambda表达式、异常处理和反射机制等工具类的用法和相关语法规则。第3篇为应用开发篇,介绍JavaSE平台下Java应用系统开发技术,主要包括GUI技术、I/O技术、多线程技术、网络编程技术等。
第1篇Java基础篇
第1章Java概述2
1.1项目任务2
1.2项目分析2
1.3技术准备3
1.3.1Java运行原理3
1.3.2JDK简介4
1.3.3Java程序的分类6
1.4项目学做6
1.5知识拓展9
1.6强化训练9
1.7本章小结10
1.8课后习题10
第2章基本符号11
2.1项目任务11
2.2项目分析11
2.3技术准备12
2.3.1变量12
2.3.2标识符12
2.3.3Java的基本符号13
2.3.4数据类型14
2.3.5数据类型转换15
2.3.6运算符17
2.4项目学做25
2.5知识拓展26
2.5.1保留字26
2.5.2转义字符26
2.5.3null符号27
2.5.4void符号27
2.5.5注释27
2.5.6Math类28
2.5.7Scanner类28
2.6强化训练29
2.7本章小结29
2.8课后习题29
第3章选择结构33
3.1项目任务33
3.2项目分析33
3.3技术准备34
3.3.1if语句34
3.3.2switch语句36
3.4项目学做38
3.5强化训练39
3.6本章小结39
3.7课后习题40
第4章循环结构43
4.1项目任务43
4.2项目分析43
4.3技术准备44
4.3.1for循环44
4.3.2while循环47
4.3.3dowhile循环48
4.3.4continue和break49
4.4项目学做50
4.5知识拓展51
4.6强化训练52
4.7本章小结52
4.8课后习题53
第5章方法与重载57
5.1项目任务57
5.2项目分析57
5.3技术准备58
5.3.1方法定义58
5.3.2方法调用59
5.3.3方法重载60
5.4项目学做61
5.5强化训练61
5.6本章小结62
5.7课后习题62
第2篇面向对象程序设计篇
第6章类与对象66
6.1项目任务66
6.2项目分析66
6.3技术准备67
6.3.1面向对象67
6.3.2类的定义69
6.3.3对象的创建72
6.3.4方法的调用74
6.3.5给方法传递对象参数75
6.3.6变量的作用域76
6.3.7this关键字78
6.3.8static关键字79
6.4项目学做82
6.5知识拓展83
6.6强化训练84
6.7本章小结85
6.8课后习题85
第7章封装90
7.1项目任务90
7.2项目分析90
7.3技术准备91
7.3.1包91
7.3.2可见性修饰符93
7.3.3访问器方法94
7.4项目学做96
7.5强化训练97
7.6本章小结97
7.7课后习题98
第8章继承101
8.1项目任务101
8.2项目分析102
8.3技术准备102
8.3.1继承102
8.3.2方法的覆盖107
8.3.3继承关系中的构造方法和super关键字108
8.3.4Object类及其常用方法110
8.3.5final关键字112
8.4项目学做114
8.5强化训练117
8.6本章小结117
8.7课后习题118
第9章多态120
9.1项目任务120
9.2项目分析121
9.3技术准备121
9.3.1多态121
9.3.2父、子类对象的使用与转化124
9.3.3instanceof运算符126
9.4项目学做128
9.5强化训练129
9.6本章小结130
9.7课后习题130
第10章抽象类和接口134
10.1项目任务134
10.2项目分析134
10.3技术准备135
10.3.1抽象类135
10.3.2接口137
10.3.3内部类139
10.4项目学做143
10.5强化训练145
10.6本章小结145
10.7课后习题145
第11章Lambda表达式149
11.1项目任务149
11.2项目分析149
11.3技术准备150
11.3.1函数式接口150
11.3.2Lambda表达式151
11.4项目学做152
11.5强化训练153
11.6本章小结153
11.7课后习题153
第12章异常与断言155
12.1项目任务155
12.2项目分析156
12.3技术准备156
12.3.1异常的概念157
12.3.2异常的处理158
12.3.3异常的声明161
12.3.4异常的抛出163
12.3.5finally子句163
12.4项目学做165
12.5知识拓展166
12.5.1Java的断言机制166
12.5.2断言的使用场合167
12.5.3开启和关闭断言167
12.5.4异常和断言的区别与联系167
12.6强化训练168
12.7本章小结169
12.8课后习题170
第13章字符串与日期174
13.1项目任务174
13.2项目分析175
13.3技术准备175
13.3.1封装类175
13.3.2字符串177
13.3.3数字的格式化180
13.3.4正则表达式181
13.3.5日期184
13.4项目学做187
13.5强化训练188
13.6本章小结188
13.7课后习题189
第14章数组191
14.1项目任务191
14.2项目分析191
14.3技术准备192
14.3.1数组的基本知识192
14.3.2数组的复制196
14.3.3数组的排序197
14.3.4数组的查找198
14.3.5Arrays类198
14.3.6二维数组199
14.4项目学做201
14.5强化训练204
14.6本章小结204
14.7课后习题205
第15章集合207
15.1项目任务207
15.2项目分析208
15.3技术准备208
15.3.1集合类概述208
15.3.2Collection接口209
15.3.3List集合210
15.3.4Set集合214
15.3.5Map集合219
15.3.6迭代器222
15.3.7泛型222
15.4项目学做225
15.5知识拓展231
15.6强化训练232
15.7本章小结232
15.8课后习题233
第16章反射237
16.1项目任务237
16.2项目分析237
16.3技术准备238
16.3.1反射的定义238
16.3.2获取Class类对象238
16.3.3类对象的功能240
16.3.4反射的优缺点250
16.4项目学做251
16.5知识拓展255
16.5.1Java代理模式255
16.5.2Java静态代理256
16.5.3Java动态代理257
16.5.4Java动态代理底层实现258
16.6强化训练259
16.7本章小结259
16.8课后习题260
第3篇Java应用开发篇
第17章图形用户界面基础263
17.1项目任务263
17.2项目分析264
17.3技术准备264
17.3.1构造简单的图形界面264
17.3.2布局管理器269
17.3.3交互与事件处理273
17.3.4项目中用到的其他GUI组件279
17.4项目学做282
17.5知识拓展283
17.5.1窗口事件283
17.5.2事件裁剪类285
17.6强化训练286
17.7本章小结286
17.8课后习题287
第18章常用UI组件289
18.1项目任务289
18.2项目分析290
18.3技术准备290
18.3.1文本区290
18.3.2面板292
18.3.3单选按钮294
18.3.4复选框296
18.3.5对话框298
18.3.6弹出式对话框301
18.4项目学做303
18.5知识拓展306
18.5.1鼠标事件306
18.5.2键盘事件308
18.6强化训练310
18.7本章小结310
18.8课后习题311
第19章输入输出313
19.1项目任务313
19.2项目分析314
19.3技术准备315
19.3.1文件管理315
19.3.2流的概念及API316
19.3.3节点流与处理流的使用320
19.3.4Java剪贴板333
19.4项目学做334
19.5知识拓展338
19.5.1对象序列化概述338
19.5.2支持序列化的接口和类338
19.6强化训练343
19.7本章小结343
19.8课后习题343
第20章线程基础347
20.1项目任务347
20.2项目分析347
20.3技术准备348
20.3.1多线程简介348
20.3.2Thread类349
20.3.3Runnable接口351
20.3.4两种实现方式的比较352
20.4项目学做354
20.5强化训练355
20.6本章小结356
20.7课后练习356
第21章线程调度358
21.1项目任务358
21.2项目分析358
21.3技术准备359
21.3.1线程同步359
21.3.2线程的优先级363
21.3.3线程状态及其生命周期365
21.3.4线程休眠和线程中断366
21.4项目学做370
21.5知识拓展371
21.5.1线程组371
21.5.2生产者与消费者问题373
21.5.3锁377
21.5.4死锁379
21.6强化训练380
21.7本章小结381
21.8课后练习381
第22章网络编程382
22.1项目任务382
22.2项目分析382
22.3技术准备383
22.3.1Socket网络编程383
22.3.2多线程的网络通信386
22.4项目学做390
22.5知识拓展392
22.5.1InetAddress编程392
22.5.2URL编程393
22.5.3UDP编程394
22.6强化训练397
22.7本章小结397
22.8课后练习397
第23章学生成绩系统399
23.1项目分析399
23.1.1需求说明400
23.1.2通过用例形式化需求400
23.1.3用例模型402
23.2项目设计402
23.2.1系统建模过程402
23.2.2类图404
23.2.3将模型转换为Java代码404
23.3项目实现408
23.3.1MainFrame类408
23.3.2LoginDialog类411
23.3.3InputScoreDialog类413
23.3.4QueryScoreDialog类415
23.3.5驱动器SGS类417
23.4项目的升级与改进419
23.4.1SGS自定义异常类419
23.4.2实现数据持久化存储419
23.4.3实现成绩在线查询422
附录A开发环境的安装与配置428
附录B学习知识点及能力要点435
参考文献439
2016年6月,中国成为国际本科工程学位互认协议《华盛顿协议》的正式会员,这是中国工程教育国际化进程的重要里程碑。“回归工程”、培养学生的“大工程观”是当今国际工程教育的主流理念。《华盛顿协议》对毕业生提出的12条素质要求中,不仅要求工程知识、工程能力,还强调通用能力和品德伦理;在实践上,以学生为中心,以产出为导向,注重对目标达成的支撑及持续改进,与CDIO工程教育实质等效。
CDIO工程教育是近年来国际工程教育改革的最新成果,以“预期学习结果”集合来驱动课程内容、教学方法、教育文化的设计,重视营造工程教育文化,其注重工程能力培养和基于工程项目全生命周期的一体化设计思想,对于国内工程类和相关专业的建设具有重要的实施价值。
作为承载了教学改革思想的载体,融入CDIO工程教育理念的高品质教材,东软CDIO工程教育教材在注重理实结合的同时,也注重对学生八大能力的培养,即:技术知识与推理能力,开放式思维与创新,个人职业能力,沟通表达与团队合作,态度与习惯,责任,价值观,实践构思、设计、实现和运行对社会的贡献。
CDIO工程教育教材是 CDIO教育教学改革在教学实施过程中的集中体现,它不仅承载着课程和项目的教学内容,而且贯穿和体现了CDIO工程教育的理念、思想与方法,是在系统化理论的指导下,将知识、能力、素质培养进行一体化设计,有机融合在教材体系中。教材的编写以能力培养为主线,以案例教学为引导,以项目为载体,充分体现“做中学”和“学中做”的思想,具有以下优势:
(1)以能力培养为主线,培养学生专业知识学习能力和工程实践能力。
(2)以案例为驱动,在做案例的过程中学习新知识,充分体现了“做中学”。
(3)以项目为载体,基于工程化教育方法,按照分析、设计、实施、运行展开项目及知识点的讲解。
(4)围绕专业知识结构和能力体系设计教材,实现同一专业下不同教材紧密的关联性。
(5)内容编排循序渐进,符合人的认知规律。
(6)适应柔性化教学变革,构建一体化、立体化教学资源。
CDIO工程教育教材可供以应用型人才为培养目标的高等院校以及职业培训机构作为教材使用。
目前,CDIO工程教育教材的建设还处于探索阶段,是一项创造性的工作,尚需要通过改革的实践不断加以深化和持续改进,任重而道远。