图书简介:
目 录
第1章 Java概述 1
1.1 Java崛起 1
1.2 Java与C、C++ 3
1.2.1 Java和C++ 3
1.2.2 Java与C 3
1.3 Java语言特点及更新 5
1.4 Java程序的类型及其不同的编程模式 6
1.5 Java开发工具入门 8
1.5.1 JDK的下载、安装 8
1.5.2 配置环境变量 9
1.5.3 JDK开发工具简介 11
1.6 Java程序开发过程 11
1.7 实训 18
习题1 18
问题探究1 18
第2章 Java编程基础 20
2.1 标识符、关键字和分隔符 20
2.1.1 标识符和关键字 20
2.1.2 分隔符 21
2.2 数据类型 22
2.2.1 基本数据类型 23
2.2.2 常量和变量 24
2.3 运算符与表达式 26
2.3.1 算术运算符 26
2.3.2 赋值运算符 27
2.3.3 关系运算符 28
2.3.4 逻辑运算符 29
2.3.5 条件运算符 29
2.3.6 其他运算符 30
2.3.7 运算符的优先级 30
2.4 Scanner键盘输入 30
2.5 案例实现 33
习题2 33
问题探究2 34
第3章 程序流程控制结构和方法 36
3.1 语句和程序流程控制结构 36
3.2 选择结构 37
3.2.1 选择语句 37
3.2.2 多选择结构switch语句 41
3.3 循环结构 44
3.3.1 三种循环语句 44
3.3.2 循环程序结构小结 48
3.3.3 循环嵌套与continue、break语句 48
3.4 算法设计* 51
3.4.1 迭代算法 51
3.4.2 穷举算法 52
3.4.3 递归算法 54
3.5 案例实现 55
习题3 55
问题探究3 56
第4章 数组 57
4.1 数组的基本概念 57
4.2 一维数组 58
4.2.1 一维数组的声明 58
4.2.2 一维数组内存申请 58
4.2.3 一维数组的初始化 59
4.2.4 测定数组的长度 60
4.2.5 for each语句与数组 61
4.3 二维数组 62
4.3.1 认识二维数组 62
4.3.2 二维数组的声明与创建 63
4.3.3 二维数组元素的初始化 64
4.3.4 二维数组的引用 65
4.4 案例实现*(课外研学) 67
习题4 70
问题探究4 71
第5章 Java类和对象 73
5.1 面向对象编程 73
5.2 类的描述 76
5.2.1 类的定义 76
5.2.2 成员变量的访问控制符 78
5.2.3 成员方法 79
5.2.4 成员变量和局部变量 81
5.2.5 final变量 82
5.3 对象的创建与使用 82
5.3.1 对象的创建 82
5.3.2 对象的比较 84
5.3.3 对象的使用 85
5.3.4 释放对象 89
5.3.5 Java变量内存分配 89
5.3.6 匿名对象 90
5.4 类的构造方法 91
5.4.1 构造方法的作用和定义 91
5.4.2 this引用 93
5.5 static变量及static方法 99
5.5.1 static变量 99
5.5.2 static方法 100
5.6 对象初始化过程 103
5.7 成员方法 106
5.7.1 方法调用与参数传递方式 106
5.7.2 方法重载 111
5.7.3 final最终方法和abstract抽象方法 113
5.8 复杂程序解决方案和方法 113
5.9 案例实现 117
习题5 120
问题探究5 123
第6章 类的继承和接口 126
6.1 类的继承 126
6.1.1 继承的概念 126
6.1.2 创建子类 127
6.1.3 关于父类的构造方法 128
6.2 成员变量的隐藏和成员方法的重构 131
6.3 抽象类 133
6.4 接口 135
6.4.1 接口概述 135
6.4.2 接口的定义 136
6.4.3 实现接口的类定义 136
6.4.4 接口的多态性 139
6.4.5 Java 8接口扩展方法 141
6.5 泛型 142
6.5.1 泛型的概念和泛型类的声明 142
6.5.2 泛型应用 142
6.6 案例实现 144
习题6 148
问题探究6 149
第7章 Java API初步 150
7.1 Java SE API官网下载 150
7.2 Java输入/输出 151
7.2.1 标准输出方法 151
7.2.2 命令行参数输入法的应用 153
7.2.3 流式交互输入/输出的应用 154
7.2.4 Java I/O基本模型 155
7.2.5 文件数据的读/写 157
7.2.6 JOptionPane对话框输入法 159
7.3 字符串类 160
7.3.1 创建String对象 161
7.3.2 创建StringBuffer对象 162
7.3.3 正则表达式与模式匹配实例 163
7.3.4 Java中正则表达式常用的语法 164
7.3.5 模式匹配方法 164
7.4 颜色类与图形绘制类 166
7.4.1 图形的颜色控制 166
7.4.2 类Graphics的基本图形 167
7.5 集合ArrayList 170
7.5.1 集合概述 170
7.5.2 类ArrayList的应用 171
7.5.3 ArrayList的综合应用 174
7.5.4 类Arrays 175
7.6 Java 8新特性* 177
7.7 Java 9 入门体验 178
7.8 案例实现*(课外研学) 181
习题7 182
问题探究7 183
第8章 包和异常 185
8.1 包 185
8.1.1 创建包 186
8.1.2 类的包外引用 187
8.2 异常处理 189
8.2.1 异常的基本概念 190
8.2.2 异常处理机制 193
8.2.3 自定义异常类 197
8.2.4 GUI应用程序的异常处理 198
8.3 案例实现 200
习题8 203
问题探究8 203
第9章 面向对象程序设计的基本原则及初步设计模式* 204
9.1 UML类图 204
9.1.1 类的UML图 205
9.1.2 UML接口表示 205
9.1.3 UML依赖关系 205
9.1.4 UML关联关系 206
9.1.5 UML聚合关系 206
9.1.6 UML组合关系 207
9.1.7 泛化关系 207
9.1.8 实现关系 208
9.2 面向对象程序设计的基本原则 209
9.2.1 发现变化,封装变化 209
9.2.2 单一职责原则和最少知识原则 212
9.2.3 开放—封闭原则 212
9.2.4 子类型能够替换基类型原则 213
9.2.5 合成/聚合复用原则 215
9.3 案例实现 215
习题9 219
问题探究9 219
第10章 图形用户界面 221
10.1 图形用户界面概述 221
10.1.1 图形用户界面组件 221
10.1.2 组件分类 222
10.1.3 常用容器类的应用 223
10.2 事件处理 227
10.2.1 基本概念 227
10.2.2 事件处理机制 229
10.2.3 事件处理的实现方式 230
10.2.4 适配器类 234
10.3 一般组件 237
10.3.1 标签 237
10.3.2 按钮 237
10.3.3 文本框 238
10.3.4 文本区 238
10.3.5 列表框 240
10.3.6 滚动窗格 242
10.3.7 复选框和单选按钮 243
10.3.8 滑动条 245
10.4 菜单与对话框 250
10.4.1 创建菜单 250
10.4.2 弹出式菜单 254
10.4.3 对话框 255
10.5 布局管理器* 260
10.5.1 顺序布局 261
10.5.2 边界布局 261
10.5.3 网格布局 262
10.5.4 卡片布局 263
10.5.5 手工布局 264
10.6 JApplet类的使用 265
10.7 Java事件类方法列表 266
10.8 案例实现 267
习题10 271
问题探究10 274
第11章 多线程 275
11.1 多线程概述 275
11.1.1 基本概念 276
11.1.2 线程的状态与生命周期 277
11.1.3 线程的调度与优先级 279
11.2 创建和运行线程 279
11.2.1 利用Thread类创建线程 280
11.2.2 用Runnable接口创建线程 282
11.3 线程间的数据共享 284
11.4 多线程的同步控制* 287
11.4.1 线程同步相关概念 287
11.4.2 synchronized应用 289
11.4.3 synchronized的进一步说明 292
11.5 案例实现 293
习题11 295
问题探究11 296
第12章 综合案例——聊天通信 298
12.1 界面及源代码 298
12.2 应用程序框架分解 302
12.2.1 Socket连接的建立 303
12.2.2 基于TCP的Socket数据通信架构 305
12.2.3 图形用户界面与事件处理界面的设计 308
12.3 网络通信基础知识 310
12.3.1 网络通信的层次 310
12.3.2 通信端口 311
12.3.3 Java网络编程中主要使用的类和可能产生的异常 311
12.3.4 Socket通信模式 312
12.3.5 Socket类和ServerSocket类的构造方法及常用方法 312
12.3.6 API系统中DataInputStream和DataOutputStream的应用 313
12.3.7 多线程处理机制 315
习题12 316
参考文献 317
展开
前 言
Java自1995年诞生以来独树一帜,发展为计算机世界的“国际语言”。原Sun公司总裁兼首席运营官Jonathan Schwartz说:“Java技术正在成为全球网络应用的事实标准,它将大大加快和简化提供移动、消费和企业市场的服务。”
计算机学科的应用型人才不仅应具有基本的科学理论基础,而且更重要的是能将理论和实践相结合,并具有解决实际问题的能力。
2005年,在Java发布10周年之际,我们探索编写第1版Java程序设计教程,由人民邮电出版社出版,受到读者和出版社好评,连续加印5次。2010年,本教材获得浙江省“十一五”重点教材建设项目立项;重新修订编写后于2012年在电子工业出版社出版了第2版,当年获全国电子信息类优秀教材;2015年,在人民邮电出版社的支持下,编写了第3版,依然受到读者的诸多鼓励。
今年基于电子工业出版社邀约和鼓励,本次修订是教材第4版,本次修订立足点是重入门、重基础、重方法、重实用。同时,在Java内容体系和结构上做微调,增加章节实训,基于“互联网+”新时代特征,推荐优秀互联网资源,辅助和简化教材,线上、线下资源结合。本书基于编程语言动手实践的重要性,层次上分为教学与研学,研学内容主要为学生自主探究学习。将原来教材中的JDBC内容放在后续Web高级开发集成环境中,方便学生学习。同时本书内容体现了不断扩展的类库和相关新特性。通过案例的引领,突出“学中用”和“用中学”,语言方面保持了读者一致首肯的形象、生动的特点,不断推敲,使读者读起来更流畅,更易于理解。
本书特色:
? 每章由“案例分析”开篇,“案例实现”收尾,案例大小适中,使读者能够快速入门,复杂案例附带视频讲解。
? 遵循“案例提出问题——知识学习——案例实现”以及“章节案例——综合案例”的结构,既便于读者理解,又把综合案例分解为可独立运行的子案例。
? 四化设计:核心知识案例化,抽象概念形象化,复杂问题通过分解尽量简单化,综合知识项目化。教材内容循序渐进,程序注重前后衔接和对比,环环相扣。为了便于教师讲解和理解,对教材中大部分程序的主要程序代码增加行号。
? 基于读者学习的实际需要,将输入/输出庞杂的内容进行了整合,基于应用和模型,删繁就简,突出重点,便于读者快速上手。
? 本书不仅注重一般概念和理论的解析,而且注重系统开发过程中结构和模式的研究。
? 课后练习的习题是“积木式”内容重建,问题探究是在知识广度和深度上拓展,SCJP/OCJP题为读者打开一扇认证之窗。
本书编写的初衷是重在应用,每章的习题、问题探究及SCJP均配有参考答案,同时增加习题的二维码互动和有关案例的视频演示和讲解。
在本书顺利完成之际,要感谢2005年我们一起编写教材的长辈和同事,他们是已经故去的尊敬的姜遇姬教授,还有我年轻的同事邓芳、刘臻等,以及我聪明的学生潘庆伟、王贤挺、郭冈灵、徐民民等。感谢电子工业出版社章海涛老师的积极推动、热心付出和敬业的指导。
PPT等资料可以在华信资源网http://www.hxedu.com.cn/hxedu/fg/home/home.html下载。
由于编者水平所限,书中难免还存在一些缺点和错误,希望读者批评指正。联系方式yangxy3225@163.com。
注:代码行号在程序编辑、编译、运行时是不需要的。*为自学内容,教材案例为研学内容。
编者
2018年10月
展开