目录 第1篇Java入门篇 第1章打开Java之门2 任务跟世界打声招呼2 1.1任务描述2 1.2任务分析2 1.3相关知识2 1.3.1Java的发展历史2 1.3.2Java语言的特点4 1.3.3Java程序的分类5 1.3.4Java的运行原理6 1.3.5Java的开发工具7 1.4任务实现13 1.5知识拓展15 1.5.1Eclipse的获取与安装15 1.5.2Eclipse的使用说明21 1.5.3IDEA的安装与使用24 1.5.4跟世界打声招呼(弹出框)31 1.5.5JShell的使用33 1.6本章小结33 1.7强化练习34 1.7.1判断题34 1.7.2选择题34 1.7.3简答题34 1.7.4编程题34第2章Java的基本语法36 任务身高预测36 2.1任务描述36 2.2任务分析36 2.3相关知识36 2.3.1内存和变量36 2.3.2基本的数据类型37 2.3.3变量的声明和使用38 2.3.4常量38 2.3.5运算符40 2.3.6基本数据类型的转换44 2.3.7表达式45 2.4任务实现45 2.5知识拓展46 2.5.1转义字符46 2.5.2注释46 2.5.3键盘输入51 2.5.4Java标识符53 2.5.5Java关键字53 2.5.6Java的命名规范54 2.6本章小结55 2.7强化练习55 2.7.1判断题55 2.7.2选择题56 2.7.3简答题56 2.7.4编程题56第3章选择结构57 任务分时问候57 3.1任务描述57 3.2任务分析57 3.3相关知识57 3.3.1简单if结构57 3.3.2ifelse结构58 3.3.3多重ifelse结构59 3.3.4ifelse条件语句的嵌套61 3.3.5switch case结构65 3.4任务实现67 3.5知识拓展69 3.5.1程序流程图69 3.5.2switch表达式69 3.5.3新的日期时间API70 3.6本章小结74 3.7强化练习74 3.7.1判断题74 3.7.2选择题74 3.7.3简答题75 3.7.4编程题75第4章循环结构77 任务小学生乘法学习软件77 4.1任务描述77 4.2任务分析77 4.3相关知识78 4.3.1for循环78 4.3.2while循环80 4.3.3dowhile循环81 4.3.4break和continue83 4.3.5循环语句的嵌套84 4.4任务实现88 4.5知识拓展91 4.6本章小结92 4.7强化练习92 4.7.1判断题92 4.7.2选择题92 4.7.3简答题94 4.7.4编程题94第5章数组95 任务歌手大奖赛评分程序95 5.1任务描述95 5.2任务分析95 5.3相关知识96 5.3.1一维数组的声明和创建96 5.3.2Java中的内存管理97 5.3.3一维数组内存分析98 5.3.4数组的遍历99 5.3.5一维数组的初始化100 5.3.6一维数组的应用102 5.4任务实现112 5.5知识拓展113 5.5.1Arrays类113 5.5.2对象数组114 5.5.3二维数组116 5.6本章小结118 5.7强化练习119 5.7.1判断题119 5.7.2选择题119 5.7.3简答题120 5.7.4编程题120 第2篇面向对象基础篇 第6章类和对象124 任务E宠之家(一)124 6.1任务描述124 6.2任务分析124 6.3相关知识124 6.3.1面向对象编程124 6.3.2类和对象126 6.3.3类的定义127 6.3.4成员变量128 6.3.5成员方法129 6.3.6方法重载131 6.3.7构造方法131 6.3.8对象的创建与使用132 6.3.9类的封装136 6.3.10UML类图138 6.4任务实现143 6.5知识拓展149 6.5.1代码块149 6.5.2static关键字使用149 6.5.3方法参数传值152 6.5.4this关键字的使用154 6.5.5包的创建与引用155 6.6本章小结157 6.7强化练习157 6.7.1判断题157 6.7.2选择题157 6.7.3简答题159 6.7.4编程题159第7章继承161 任务E宠之家(二)161 7.1任务描述161 7.2任务分析161 7.3相关知识162 7.3.1什么是继承162 7.3.2变量隐藏和方法重写164 7.3.3子类的继承性和继承特点166 7.3.4super关键字的使用167 7.4任务实现170 7.5知识拓展175 7.5.1Object与toString()方法175 7.5.2final关键字176 7.5.3abstract关键字177 7.5.4访问权限179 7.6本章小结181 7.7强化练习181 7.7.1判断题181 7.7.2选择题182 7.7.3简答题183 7.7.4编程题183第8章多态185 任务E宠之家(三)185 8.1任务描述185 8.2任务分析185 8.3相关知识185 8.3.1什么是多态185 8.3.2如何实现多态186 8.3.3instanceof运算符188 8.4任务实现190 8.5知识拓展194 8.6本章小结195 8.7强化练习196 8.7.1判断题196 8.7.2选择题196 8.7.3简答题197 8.7.4编程题197第9章接口199 任务E宠之家(四)199 9.1任务描述199 9.2任务分析199 9.3相关知识199 9.3.1接口的概念199 9.3.2接口的定义和实现200 9.3.3接口的使用场合201 9.4任务实现207 9.5知识拓展211 9.5.1抽象类和接口比较211 9.5.2Java 8中关于接口的改进212 9.5.3设计模式之适配器设计模式 212 9.5.4设计模式之简单工厂设计模式213 9.5.5内部类214 9.6本章小结217 9.7强化练习217 9.7.1判断题217 9.7.2选择题217 9.7.3简答题219 9.7.4编程题219第10章异常处理221 任务计算平均成绩221 10.1任务描述221 10.2任务分析221 10.3相关知识221 10.3.1生活中的异常221 10.3.2Java中的异常222 10.3.3异常类224 10.3.4Java如何进行异常处理226 10.3.5自定义异常231 10.4任务实现233 10.5知识拓展235 10.5.1JDK新语法trywithresource235 10.5.2JDK 1.7对异常处理的改进236 10.5.3在Eclipse中查看类的继承结构236 10.5.4在IDEA中查看类的继承结构237 10.6本章小结238 10.7强化练习238 10.7.1判断题238 10.7.2选择题238 10.7.3简答题239 10.7.4编程题240 第3篇进阶篇 第11章图形用户界面设计242 任务单机版商场收银系统242 11.1任务描述242 11.2任务分析242 11.3相关知识243 11.3.1图形用户界面设计概述243 11.3.2容器243 11.3.3JFrame类243 11.3.4布局管理247 11.3.5事件处理256 11.4任务实现267 11.5知识拓展271 11.6本章小结276 11.7强化练习277 11.7.1判断题277 11.7.2选择题277 11.7.3简答题277 11.7.4编程题277第12章输入输出流279 任务单词记忆卡279 12.1任务描述279 12.2任务分析280 12.3相关知识281 12.3.1Java I/O流概述281 12.3.2File类281 12.3.3字节流和字符流284 12.3.4内存操作流288 12.3.5打印流289 12.3.6缓冲流291 12.3.7又见Scanner294 12.3.8对象序列化295 12.4任务实现298 12.5知识拓展302 12.5.1文件选择器——JFileChooser302 12.5.2装饰设计模式304 12.6本章小结307 12.7强化练习307 12.7.1判断题307 12.7.2选择题307 12.7.3简答题308 12.7.4编程题308第13章Java集合框架309 任务电话号码管理程序309 13.1任务描述309 13.2任务分析309 13.3相关知识309 13.3.1Java集合框架概述309 13.3.2List接口310 13.3.3Set接口317 13.3.4迭代器——Iterator324 13.3.5Map接口325 13.3.6再谈泛型327 13.4任务实现330 13.5知识拓展336 13.5.1Stack336 13.5.2Queue336 13.6本章小结338 13.7强化练习338 13.7.1填空题338 13.7.2读程序并回答问题338 13.7.3简答题339 13.7.4编程题339第14章Java网络编程341 任务智能聊天机器人341 14.1任务描述341 14.2任务分析341 14.3相关知识342 14.3.1URI与URL基础知识342 14.3.2URL类343 14.3.3InetAddress类348 14.3.4网络连接与处理的API349 14.4任务实现354 14.4.1使用旧的网络API实现与聊天服务器的一次通信354 14.4.2使用新的网络API实现与聊天服务器的一次通信355 14.4.3使用新的网络API实现聊天机器人任务356 14.5知识拓展359 14.5.1OSI与TCP/IP体系模型359 14.5.2IP与端口360 14.5.3面向连接与面向无连接360 14.5.4TCP360 14.5.5Socket原理361 14.5.6ServerSocket类362 14.5.7Socket类363 14.5.8UDP364 14.5.9UDP编程的一般步骤365 14.6本章小结367 14.7强化练习367 14.7.1判断题367 14.7.2选择题368 14.7.3简答题368 14.7.4编程题368第15章多线程370 任务龟兔赛跑370 15.1任务描述370 15.2任务分析370 15.3相关知识371 15.3.1多线程概述371 15.3.2线程的创建和启动374 15.3.3线程的控制380 15.3.4线程的同步386 15.3.5等待和通知392 15.3.6同步引发的死锁问题397 15.4任务实现399 15.5知识拓展402 15.5.1线程池402 15.5.2CyclicBarrier类的使用404 15.6本章小结405 15.7强化练习405 15.7.1判断题405 15.7.2选择题406 15.7.3简答题406 15.7.4编程题407第16章数据库访问408 任务书籍管理系统408 16.1任务描述408 16.2任务分析408 16.3相关知识409 16.3.1JDBC的定义与工作原理409 16.3.2JDBC的相关类与接口API410 16.3.3使用JDBC连接数据库的步骤411 16.3.4JDBC程序的一般工作模板412 16.3.5JDBC对数据的CRUD基本操作412 16.3.6预处理操作423 16.4任务实现427 16.5知识拓展429 16.5.1数据库相关知识简介429 16.5.2不同数据库的连接方式431 16.5.3存储过程432 16.5.4分页查询435 16.6本章小结438 16.7强化练习438 16.7.1判断题438 16.7.2选择题439 16.7.3简答题439 16.7.4编程题439参考文献441