
本书是高职教育类教材。本书针对目前开发行业对Java语言开发工具应用的技能需求以及计算机类专业对Java语言编程的基本要求,与企业深度合作,以“学习目标”→“任务引导”→“任务基础”→“任务实施”→“综合训练”为主线来编写。内容在涵盖基本程序语法的基础上,以小项目开发为实践落脚点。通过“学习目标”和“任务引导”,让学生首先了解要解决的问题;然后学习“任务基础”,奠定技术基础;进而完成“任务实施”的常规练习和拓展练习,来巩固学习成果,从而提高学生的编程技术和能力;最后通过“综合训练”梳理重要知识点,促进重要知识的识记与掌握。本书理论与实际深度融合,便于素质教育的教学实施。本书整体上采用“项目引导与驱动”模式,将枯燥的程序语法学习融入具体项目案例中,有利于激发学生学习兴趣,提升学习效果和教学效果。此外,本书案例源自工作实际项目,参考近期Java程序编程岗位的技能需求设计与编制,结构合理,实用性强。本书可作为高职院校计算机类专业或电子信息类专业Java程序设计教材,也可作为成人高校和其他培训机构的教材。
根据对计算机相关岗位招聘需求信息进行的调研,关于编程语言,高职院校的计算机相关专业学生应至少掌握或接触过一门面向对象的高级程序设计语言。学生掌握相关知识技能后,才能更好地胜任岗位。而面向对象程序设计语言,从最近3年的TIOBE编程语言排行发布看,Java语言一直排在前列。所以,本书选取的编程语言是Java。编写书籍过程中,学习目标来自近期的实际岗位需求信息,由此梳理和整合的相关知识技能会更贴近岗位素质。 本书是针对Java的面向对象程序设计教材,既适用于高职院校学生学习使用,也适合于高职教师授课参考,同时还可作为Java编程语言的初学者用书。高职院校教师可使用本书作为教材、教参,使用思路是:根据所在高职院校学生现状和专业人才培养方案,对照本书学习目标,选取本书合适的单元进行教学大纲、教学计划等的设计;选取对应单元合适的知识技能作为教学点,进行教学方案等的设计;选取对应单元的实训案例,指导学生练习。学生方面,除了根据教师教授的内容进行复习和练习外,还可以挑选一些感兴趣的技能点学习,并进行对应的案例练习。其他Java初学者可以参考本书的书目脉络按序学习和练习。 本书由重庆电子工程职业学院武春岭、朱崇来担任主编,由黎娅、奇安信集团林雪纲担任副主编。内容共分为9个单元,其中,朱崇来编写第1至第4单元;武春岭编写第5和第6单元;黎娅编写第7和第8单元;唐珊珊编写第9单元;林雪纲提供实验素材和书稿案例,并进行技术校验。全书涵盖初识Java,Java基本语法应用,控制结构、方法与数组应用,类与对象应用,常用类应用,集合应用,文件操作应用,线程应用,网络编程应用。 本书采用项目贯穿所有单元知识点,以“学习目标”→“任务引导”→“任务基础”→“任务实施”→“综合训练”为脉络,从多方位打造学生编程技术和能力,让学生掌握整个项目设计实施过程,兼顾点面结合。全书内容精简、重点突出。其中,“学习目标”是从当前行业实际岗位需求中摘录的主流要求;“任务引导”是单元知识与技能的人文性引入;“任务基础”是单元目标对应所需的技能基础;“任务实施”是强化训练单元知识与技能的案例题目;“综合训练”是对重要知识的再梳理。此外,本书还有机融入软件工程师精益求精工匠精神等思政元素。全书内容精简,重点突出,是一本现代职业教育不可多得的软件类教材。 由于编者水平有限,书中难免存在不足之处,恳请广大读者不吝指正,我们将在再版时及时改进。编者的E-mail:wuch50@126.com。 编 者 2022 年 11 月
单元1 初识Java 1 学习目标 1 任务引导 1 任务基础 1 1.1 Java概述 1 1.2 Java程序运行机制 3 1.3 Java程序开发 7 1.4 Java注释 13 1.5 素质拓展—千里之行,始于足下 14 任务实施 15 1.6 下载安装JDK8 15 1.7 搭建Java开发环境 15 1.8 使用Eclipse编写HelloWord程序 15 综合训练 15 单元 2 Java基础语法应用 16 学习目标 16 任务引导 16 任务基础 16 2.1 标识符和关键字 16 2.2 变量和常量 17 2.3 Java数据类型 19 2.4 成员变量和局部变量 24 2.5 Java运算符 26 2.6 Java表达式 30 2.7 素质拓展—没有规矩,不成方圆 32 任务实施 32 2.8 工程师月薪计算 32 2.9 “瑞达系统”获取用户输入 33 综合训练 34 单元3 控制结构、方法与数组应用 35 学习目标 35 任务引导 35 任务基础 35 3.1 if语句 35 3.2 switch语句 41 3.3 循环语句 44 3.4 方法 51 3.5 一维数组 56 3.6 排序算法 64 3.7 二维数组 65 3.8 素质拓展—用心的事情坚持做 68 任务实施 68 3.9 商城送礼 68 3.10 杨辉三角形打印 68 综合训练 69 单元4 类与对象应用 70 学习目标 70 任务引导 70 任务基础 71 4.1 类和对象概述 71 4.2 Java类 73 4.3 构造方法 83 4.4 对象初始化过程 86 4.5 重载 89 4.6 抽象和封装 91 4.7 继承 99 4.8 多态 109 4.9 包和访问控制 113 4.10 抽象类 125 4.11 接口 129 4.12 素质拓展—取其精华,去其糟粕 140 任务实施 140 4.13 封装学生类和老师类 140 4.14 构造方法初始化学生类和老师类 141 4.15 重载学习方法 141 4.16 导入类和包 141 4.17 产生随机数 141 4.18 继承角度实现租车系统 142 4.19 多态角度实现租车系统 142 4.20 接口方式实现打印机工作过程 142 综合训练 142 单元5 常用类应用 144 学习目标 144 任务引导 144 任务基础 144 5.1 Java API文档的使用 144 5.2 String类 146 5.3 StringBuffer类 152 5.4 异常处理 154 5.5 素质拓展—精益求精,无处不在 174 任务实施 174 5.6 计算字符串中子字符串出现的次数 174 5.7 完成Java工程师注册的功能 174 5.8 使用Java API查找String类的方法并使用 175 5.9 字符串分割 175 5.10 根据现有程序添加合适的异常处理代码 176 5.11 手工抛出一个算数异常 176 综合训练 176 单元6 集合应用 178 学习目标 178 任务引导 178 任务基础 178 6.1 集合框架 178 6.2 Set接口 180 6.3 Iterator迭代器 184 6.4 List接口 187 6.5 Map接口 190 6.6 工具类 191 6.7 自动拆箱和装箱 198 6.8 泛型 200 6.9 素质拓展—时刻树立大局观 201 任务实施 201 6.10 实现学生信息存放与删除 201 6.11 改写租车系统,逆序输出车辆名称 202 6.12 租车系统增加附加车辆信息功能 202 6.13 域名与内容关联存储实现 202 6.14 利用工具类实现学生信息比较 203 6.15 泛型方式实现租车系统 203 综合训练 203 单元7 文件操作应用 204 学习目标 204 任务引导 204 任务基础 204 7.1 File类 204 7.2 字节流和字符流 210 7.3 其他流 214 7.4 素质拓展—方向不对,努力白费 218 任务实施 218 7.5 获取目录和文件路径 218 7.6 字符流方式实现文件复制 219 7.7 数据流方式存取车辆信息 219 综合训练 219 单元8 线程应用 220 学习目标 220 任务引导 220 任务基础 220 8.1 多线程 220 8.2 创建和使用线程 222 8.3 线程控制 225 8.4 共享数据 233 8.5 线程死锁和协作 240 8.6素质拓展—合理规划,分而治之 245 任务实施 246 8.7 多线程实现输出 246 8.8 线程等待与中断方式实现计数 246 8.9 多线程同步计数 246 综合训练 246 单元9 网络编程应用 247 学习目标 247 任务引导 247 任务基础 247 9.1 计算机网络 247 9.2 IP地址和域名 253 9.3 Java与网络 255 9.4 Socket编程 261 9.5 素质拓展—举一反三,学以致用 267 任务实施 268 9.6 IP地址配置与ping测试 268 9.7 网络编程常用类测试 268 综合训练 268