
Java语言是一种分布式的面向对象语言,学好Java是成为一名优秀软件工程师的必经之路。
《Java程序设计基础(微课版)》由课程导入和11个单元组成。内容包括本课程学习方法、搭建环境并构建语法基础、Java程序结构、Java类与对象、继承/多态/接口、数组与异常处理程序设计、静态界面布局与设计、事件处理及界面设计、文件管理、线程与动画、网络功能实现、操作数据等内容。
《Java程序设计基础(微课版)》不仅适合软件技术专业,而且适合计算机类相关专业的教学,以及对编程有兴趣的爱好者自学。
前 言
据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。
Java是近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响逐渐减弱不同,Java 随着时间的推移反而变得更加强大。
从首次发布开始,Java就跃居Internet编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java依然是开发基于Web应用程序的最佳选择。此外,Java还是智能手机变革的推手,Android编程采用的就是Java语言。
Java语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点。Java的面向对象设计思想几乎被所有编程语言所学习。如今很多的流行技术如Android技术等都和Java有着直接的联系,学好Java可以说是成为一名优秀软件开发工程师的必经之路。
计算机程序设计语言教学一直存在着知识和技术两方面的协调问题,模块化教学处理,任务驱动的教学方法,是现在计算机程序设计语言中最有效的方法之一。本教材通过行之有效的单元划分和任务的选取,使学习者对知识的掌握和技术的应用有效地融为一体。本书精心设计了与教学目标结合紧密、适于学生学和教师教的案例,将知识讲解融入任务之中,并能很好地指导学生实践,有利于学习者理解和巩固知识,在完成任务的实践中培养技术应用能力。
本书从Java技术的发展和学生认知规律出发,将教学内容分为11个单元,29个典型任务,任务中又包含多个实例。本书采用实际生活中大家所熟悉的实例来导入知识讲解,从而使概念更加生动且人性化,更容易理解,进而对概念的运用也更加得心应手。
本课程建议授课学时为50,项目训练学时为30。主要内容如下:
◎ 课程导入,全面介绍了本课程的基本情况、结构以及学习和考核方法;
◎ 单元1 搭建环境并构建语法基础,主要讲解Java的历史,搭建Java集成开发环境,Eclipse的基本使用方法,Eclipse创建Java程序的步骤以及标识符,关键字和保留字、注释方法、数据类型等基础语法知识;
◎ 单元2 Java程序结构,这一单元模块解决程序常用结构问题包括:顺序结构、选择结构、分支结构、循环结构,涵盖程序语言的基本逻辑结构范式;
◎ 单元3 Java类与对象,这一单元模块是理解面向对象程序设计思想的重要内容之一,讲解类、对象等概念与用法;
◎ 单元4 继承、多态与接口,这一单元模块是上一单元的延续,也是理解面向对象程序设计思想的重要内容之一,主要讲解什么是封装、继承、多态、抽象类和接口等;
◎ 单元5 数组与异常处理程序设计,主要讲解数组和字符串的应用、异常处理机制和自定义异常设计等;
◎ 单元6 静态界面布局与设计,这部分是通过学习Swing组件来实现GUI设计,主要讲解Swing组件的应用及软件静态界面设计等;
◎ 单元7 事件处理及界面设计,主要讲解交互式图形用户界面程序设计,主要涉及事件及对应窗口设计;
◎ 单元8 高级程序设计——文件管理,主要讲解文件处理技术。
◎ 单元?9 高级程序设计——线程与动画,主要讲解流处理、多线程技术、Socket接口技术等Java高级应用设计。
◎ 单元10 高级程序设计——网络功能实现,主要讲解网络编程技术等Java高级应用设计。
◎ 单元11 高级程序设计——操作数据库,这部分主要涉及Java的一类重要应用,即数据库连接与操作,另外,使用一个企业真实项目来讲解一个项目的设计和编码过程,同时对Java知识点进行复习和应用。
本教材有以下特点。
(1) 打破原有的“大而全”系统体系,以任务驱动知识点讲解。教材在吸取其他教材编写经验的基础上,使用任务驱动的形式来完成内容的组织。全书共分29个任务,通过对任务的演示和分析,每个任务都按照“任务目标→任务描述→知识准备→实践操作→知识拓展→巩固训练”过程进行组织,让学生系统地了解这节课要解决的问题和可以产生的效果,这也就解决了很多教材中只讲知识点但不讲知识点应用的问题。另外,为开阔学生思路,增加“知识拓展”,增加了知识的理解和技术应用的经验。
(2) 加强实践教学环节,突出“做中教,做中学”的职业教育特色。改变以往把Java作为基础课从而使用理论逻辑关系平铺直叙的呈现形式,而采用“演示与思考”“边讲边做”“讨论与交流”“实践操作”等学生能够参与的活动形式。“边讲边做”“讨论与交流”“实践操作”是在教师引导下,使学生通过动手实训、讨论和自主学习等活动掌握基础知识和基本技能。与此同时,安排“巩固训练”加强了技能操作的熟练度,并结合具体内容对实践应用进行指导,渗透方法能力和职业道德等的培养,对重点、难点加以提示等。
(3) 概念清晰,内容浅显易懂,图表丰富直观,使学生在学习中容易理解。例如在讲解多态内容时,使用了内存的示例图,从而理解起来更加直观。同时在对多态的概念描述时先进行了非正式的概念描述,使学生先有了简单容易的理解,然后再给出正规定义。
本教材不仅适合软件技术专业,而且适合计算机类相关专业的教学,以及对编程有兴趣的编程爱好者自学。
本教材由唐永平、唐中剑担任主编,负责教材总体设计及统稿。海南软件学院严丽丽、湖北国土资源职业学院管胜波、梧州职业学院韦霞、梧州职业学院曾庆毅担任副主编;梧州职业学院的彭子真、周毓、陈坤铃、许淮钦、李卓运、庞清梅,广西厚溥教育科技有限公司的韦世雄、程根钊参与了本书的编写工作或相关资料的收集工作,以及课程配套教学资源的开发工作。在教材的编写过程中,锐捷网络股份有限公司、广西厚溥教育科技有限公司、山东师创软件工程有限公司、东忠集团、NEC软件(济南)有限公司对本书提供了宝贵资源以及大力支持,企业员工参与教材编写,在此表示感谢。
由于作者的水平有限,错误之处在所难免,恳请各位读者给予指正。
编 者
目 录
课程导入 1
0.1 什么是Java语言 2
0.2 Java语言的特点 3
0.3 如何学习本课程 5
单元1 搭建环境并构建语法基础 7
任务1.1 安装和配置Java开发环境 8
1.1.1 Java的发展历史 8
1.1.2 Java的特点及优势 9
1.1.3 Java的运行机制 9
1.1.4 Java的JDK 10
1.1.5 实践操作:安装和配置Java
发环境 11
巩固训练:环境搭建 14
任务1.2 构建语法基础 15
1.2.1 Java的两类程序结构 15
1.2.2 实践操作:使用Eclipse创建
Java程序并创建一个类 16
巩固训练:输出自己的基本信息 19
1.2.3 Java语言系统 19
1.2.4 实践操作:编程输出扇形的
面积和周长 27
巩固训练:实现一个数字加密器 28
单元小结 29
单元习题 29
单元2 Java程序结构 31
任务2.1 计算月份天数 32
2.1.1 顺序结构 32
2.1.2 选择结构 32
2.1.3 分支结构 34
2.1.4 实践操作:运用分支结构
判断月份天数 36
巩固训练:计算个人所得税 37
任务2.2 根据等式猜数字 38
2.2.1 循环结构 38
2.2.2 实践操作:猜数字游戏的
程序设计 43
巩固训练:计算增长时间问题 45
单元小结 45
单元习题 46
单元3 Java类与对象 49
任务3.1 创建有关人的“类” 50
3.1.1 类与对象的概念与关系 50
3.1.2 类的定义 51
3.1.3 创建对象 52
3.1.4 实践操作:描述“人类”
信息程序设计 54
巩固训练:编写一个手机类 55
任务3.2 借书卡程序实现 55
3.2.1 类的方法 56
3.2.2 构造方法 57
3.2.3 方法重载 58
3.2.4 变量的作用域 60
3.2.5 定义包和导入包的关键字 61
3.2.6 实践操作:图书借阅卡程序 62
巩固训练:电表显示程序 64
任务3.3 Java程序中类的组织 64
3.3.1 封装 65
3.3.2 Java的修饰符 66
3.3.3 实践操作:使用包来进行
Java程序中类的组织 68
巩固训练:通过封装编写Book类 70
单元小结 70
单元习题 70
单元4 继承、多态与接口 75
任务4.1 实现员工信息管理 76
4.1.1 继承 76
4.1.2 方法的覆盖 77
4.1.3 this和super关键字 78
4.1.4 最终类和抽象类 79
4.1.5 实践操作:雇员信息管理
程序编写 80
巩固训练:动物世界的继承关系
代码编写(一) 82
任务4.2 实现员工信息分类 83
4.2.1 多态的概念 83
4.2.2 多态的用法 84
巩固训练:动物世界的继承关系
代码编写(二) 85
任务4.3 实现USB接口模拟 85
4.3.1 Java接口 86
4.3.2 接口与多态 87
4.3.3 面向接口编程的步骤 88
4.3.4 接口中常量的使用 89
4.3.5 实践操作:USB接口模拟
程序编写 90
巩固训练:几何图形设计及其面积、
周长计算 91
单元小结 92
单元习题 93
单元5 数组与异常处理程序设计 95
任务5.1 实现学生成绩计算 96
5.1.1 一维数组 96
5.1.2 二维数组 101
5.1.3 实践操作:学生成绩计算
程序编写 102
巩固训练:数列求和与猜数游戏
程序编写 105
任务5.2 实现天气预报信息处理 105
5.2.1 创建String字符串 106
5.2.2 String类的常用操作 106
5.2.3 StringBuffer类的常用方法 107
5.2.4 实践操作:天气预报信息
处理程序设计 109
巩固训练:对输入的Java源文件名
以及邮箱地址的检测编程
实现 111
任务5.3 实现一个除法计算器 111
5.3.1 异常概念以及处理机制 111
5.3.2 异常的分类 112
5.3.3 异常的捕获与处理 113
5.3.4 实践操作:除法计算器
程序设计 115
巩固训练:异常处理练习(一) 116
任务5.4 实现一个最大公约数计算器 117
5.4.1 自定义异常 117
5.4.2 抛出异常 throw 118
5.4.3 上报异常 throws 118
5.4.4 实践操作:最大公约数
计算器设计 118
巩固训练:异常处理练习(二) 120
单元小结 121
单元习题 121
单元6 静态界面布局与设计 123
任务6.1 实现一个油耗计算器 124
6.1.1 抽象窗口工具集(AWT) 124
6.1.2 Swing组件简介 125
6.1.3 JComponent组件 126
6.1.4 JFrame组件 126
6.1.5 Swing的其他常用组件 127
6.1.6 实践操作:油耗计算器
程序设计 128
巩固训练:设计一个Email邮箱
地址注册的图形用户界面 131
任务6.2 设计一个计算器的界面 132
6.2.1 Java布局管理 132
6.2.2 常见的布局管理器 132
6.2.3 实践操作:计算器界面
设计 136
巩固训练:设计一个Email注册
页面 138
单元小结 138
单元习题 139
单元7 事件处理及界面设计 141
任务7.1 实现计算器的事件处理 142
7.1.1 Java事件 142
7.1.2 Java事件处理机制 143
7.1.3 Java事件体系结构 144
7.1.4 Java事件监听器和监听
方法 145
7.1.5 实践操作:计算器事件
处理 148
巩固训练:设计一个Email邮箱
地址注册的图形用户界面 149
任务7.2 实现一个字体设计窗口 150
7.2.1 组合框JComboBox 150
7.2.2 复选框JCheckBox 151
7.2.3 单选按钮JRadioButton 152
7.2.4 列表框JList 152
7.2.5 选择事件ItemEvent 153
7.2.6 实践操作:字体设置窗口
程序设计 154
巩固训练:字体设置程序设计 155
任务7.3 实现一个字体设计菜单 156
7.3.1 菜单栏JMenuBar 157
7.3.2 菜单项JMenu 157
7.3.3 菜单项子项JMenuItem 158
7.3.4 复选菜单项
JCheckBoxMenuItem 159
7.3.5 单选菜单项JRadioButtonMenuItem 159
7.3.6 实践操作:字体设置菜单
设计 160
巩固训练:设计一个带有菜单的
图形用户界面 162
单元小结 162
单元习题 162
单元8 高级程序设计——文件管理 165
任务8.1 实现文件管理 166
8.1.1 File文件概念 166
8.1.2 File文件的创建 166
8.1.3 File类常用的方法 167
8.1.4 实践操作:文件管理程序
设计 170
巩固训练:文件管理程序
设计 173
任务8.2 为Java源程序添加行号 173
8.2.1 流的概念 174
8.2.2 流的分类 174
8.2.3 字节流 174
8.2.4 字符流 179
8.2.5 实践操作:Java源程序行号
添加程序设计 182
巩固训练:随机访问文本 183
单元小结 184
单元习题 184
单元9 高级程序设计——线程与
动画 187
任务9.1 编写一个简单的动画 188
9.1.1 线程与进程的概念和关系 189
9.1.2 线程的生命周期 189
9.1.3 线程的创建 190
9.1.4 实践操作:运用Java多线程
技术编写一个简单的动画 194
巩固训练:编写一个电子时钟的
应用程序 196
任务9.2 实现学生成绩读写 196
9.2.1 多线程的共享互斥 196
9.2.2 使用线程同步解决共享
互斥 198
9.2.3 实践操作:学生成绩读写
程序设计 199
巩固训练:仓库的进货与销售同步
控制的程序设计 202
任务9.3 实现实时时间的显示 202
9.3.1 多线程技术 203
9.3.2 实践操作:显示实时时间
程序设计 203
巩固训练:通过继承Thread类的
方式重写任务代码 204
单元小结 204
单元习题 204
单元10 高级程序设计——网络功能
实现 207
任务10.1 实现一个网络聊天程序 208
10.1.1 网络通信与网络协议基础 208
10.1.2 基于TCP/IP的网络编程
原理 210
10.1.3 TCP/IP网络编程相关类 210
10.1.4 实践操作:网络聊天程序
设计 212
巩固训练:用Socket实现客户和
服务器交互 215
任务10.2 实现一个局域网聊天系统 215
10.2.1 基于UDP的网络编程
原理 216
10.2.2 UDP网络编程相关类的
使用 217
10.2.3 实践操作:无连接网络聊天
程序设计 219
巩固训练:用UDP协议实现聊天
程序 222
单元小结 222
单元习题 222
单元11 高级程序设计——
操作数据库 225
任务11.1 实现员工数据的更新 226
11.1.1 JDBC工作原理 226
11.1.2 JDBC访问数据库 227
11.1.3 实践操作:员工数据管理
程序设计 231
巩固训练:编写一个用户维护的
功能模块 235
任务11.2 实现员工数据的查询 235
任务11.3 实现一款SQL小工具的
开发 238
11.3.1 ResultSetMetaData 239
11.3.2 JTable 240
11.3.3 实践操作:开发SQL
小工具 248
巩固训练:编写一个通讯录功能
模块 254
单元小结 254
单元习题 255
参考文献 256
《Java程序设计基础(微课版)》是按照任务驱动理念编写,以Java工程师岗位职业能力为主线,把Java技术有机地分解为典型任务,将知识融入任务情景之中。全书共分29个任务,通过对任务的演示和分析,每个任务都按照“任务目标→任务描述→知识准备→实践操作→知识拓展→巩固训练”过程进行组织,让学生系统地了解这节课要解决的问题和可以产生的效果,这也就解决了很多教材中只讲知识点但不讲知识点应用的问题。另外,为开阔学生思路,编写“知识拓展”,增加了知识的理解和技术应用的经验。
唐永平,梧州职业学院副教授。主持广西高等职业教育教学改革项目1项,主持在研2018年主持了广西高校中青年教师基础能力提升项目1项;发表论文8篇,其中北大核心论文1篇,广西优秀期刊1篇,EI收录会议论文1篇;参编教材3本。在2013年获得广西职业教育教学优秀论文评选三等奖;2019年申请登记软件著作权1项;2018年7月受聘担任第六届全区职工职业技能大赛计算机程序设计员工种决赛裁判组组长。