首页>参考读物>计算机科学与技术>程序设计

Java程序设计与计算思维
作者 : 赵军 吴灿铭 等编著
出版日期 : 2019-08-05
ISBN : 978-7-111-63224-5
定价 : 99.00元
扩展资源
扩展信息
语种 : 简体中文
页数 : 580
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

程序设计的过程就是一种计算思维的表现,本书结合Java程序设计语言的教学特点,遵循计算思维的方式,图解重要概念,通过大量的范例程序讲解和上机编程实践来指导读者活用Java程序语法,兼顾培养计算思维和学习面向对象程序设计的双目标。
本书分为18章,内容包括认识计算思维与Java程序设计、Java语言及其JDK 11、Java程序结构解析、Java语言的数据类型、流程控制、类与对象、继承与多态、抽象类、接口、程序包、嵌套类、常用类、窗口环境与事件处理、Swing程序包、绘图与多媒体、例外处理、数据流的I/O控制、集合对象与泛型、多线程、网络程序设计等。

图书前言

Java的版本在不断更新,Oracle公司于2017年9月21日发布了Java SE 9(Java Standard Edition 9,Java标准第9版),接着在2018年3月21日,又发布了Java SE 10。目前,最新产品的名称为Java SE Development Kit 11(Java标准版开发工具包第11版,简称Java SE 11),是在2018年9月25日发布的。
Java的开发工具包分成IDE(Integrated Development Environment,集成开发环境)和JDK(Java Development Kit,Java开发工具包)两种,本书选用的Java编译环境为最新的软件开发工具包JDK 11。即便没有集成开发环境,使用“记事本”这种简单的编辑器也可以轻松编辑Java程序。
Java语言从诞生之后就魅力不减,软件从业者和硬件制造者竞相采用Java语言编写主要的控制程序或应用程序,许多大专院校纷纷开设Java的基础课程及应用专题。市面上关于Java程序设计的图书琳琅满目,引进翻译的Java图书大部分只注重Java编程理论的讲解,在范例程序的解析上稍显不足。对初学者而言,这类书缺乏上机编程的实践指导,初学者很少有实际演练的机会。国内编著的Java书则在实践方面着墨甚多,以实践来引导概念的理解,注重范例程序的质与量。
笔者希望结合国内外程序设计语言系列书的优点,遵循程序设计的步骤,配合适当的范例程序,以减少读者在学习Java程序设计时的障碍。此外,对所有范例程序都提供了完整的代码、执行结果截图和关键程序语句含义的说明。在本书中,我们将教导读者如何编写出一个正确的Java程序,同时使得程序具有良好的结构与可读性。书中的重要概念都配有“示意图”进行解析,大部分章节还安排了“本章高级应用练习实例”,为读者提供更丰富的应用实例,从而有更多活用程序语法的实践演练机会。
本书适合综合性大学、理工科大学、技术专科学院作为教材,用于教授程序设计、面向对象程序设计等相关课程;同时,也适合想学习Java程序设计的读者作为自学参考书。初学者可以借助本书进入Java程序设计语言的殿堂。
本书的目标是让读者了解如何编写Java程序,以及更深入地理解什么是面向对象的程序设计,学会以Java的视角来思考面向对象的程序设计,并最终将面向对象的程序设计付诸实践。Java程序的强大功能是全世界有目共睹的,它真正引导的是面向对象程序设计的思维,而让读者完全掌握这种思维,正是本书努力实现的目标。
本书中的所有范例程序都是在JDK 11环境中编写和编译通过的,并确认执行结果正确无误。课后习题中有关编程实践的习题,我们编写了参考程序供读者参考。
读者可以登录机械工业出版社华章公司的网站(www.hzbook.com)下载本书范例程序和课后习题的参考程序,先搜索到本书,然后在页面上的“资料下载”模块下载即可。如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题为“Java程序设计与计算思维”。
本书主要由赵军、吴灿铭编写,同时参与编写工作的还有王国春、施妍然、王然、孙学南等。
最后,祝读者学习愉快,顺利加入Java程序设计一族

资深架构师 赵军
2019年4月

上架指导

计算机\程序设计

封底文字

程序设计的过程就是一种计算思维的表现,本书结合Java程序设计语言的教学特点,遵循计算思维的方式,图解重要概念,通过大量的范例程序讲解和上机编程实践来指导读者活用Java程序语法,兼顾培养计算思维和学习面向对象程序设计的双目标。

本书分为18章,内容包括:认识计算思维与Java程序设计、Java语言及其JDK 11、Java程序结构解析、Java语言的数据类型、流程控制、类与对象、继承与多态、抽象类、接口、程序包、嵌套类、常用类、窗口环境与事件处理、Swing程序包、绘图与多媒体、例外处理、数据流的I/O控制、集合对象与泛型、多线程、网络程序设计等。

本书适合综合性大学、理工科大学、技术专科学院作为教材,用于教授程序设计、面向对象程序设计等相关课程;同时,也适合想学习Java程序设计的读者作为自学参考书。

图书目录

前言
第1章 计算思维与Java设计初步体验 1
1.1 认识计算思维 2
1.1.1 计算思维的内容 3
1.1.2 分解 3
1.1.3 模式识别 5
1.1.4 模式概括与抽象 5
1.1.5 算法 6
1.2 进入程序设计的奇幻世界 8
1.2.1 程序设计语言的分类 8
1.2.2 程序设计的流程 10
1.2.3 程序编写的原则 10
1.3 程序设计逻辑的简介 12
1.3.1 结构化程序设计 12
1.3.2 面向对象程序设计 13
1.3.3 在面向对象程序设计中的其他关键术语 15
1.4 Java语言的特性 16
1.4.1 简单性 16
1.4.2 跨平台性 17
1.4.3 解释型 17
1.4.4 严谨性 18
1.4.5 例外处理 18
1.4.6 多线程 18
1.4.7 自动垃圾回收 18
1.4.8 泛型程序设计 19
1.5 Java的开发环境版本与架构 19
1.5.1 程序开发工具介绍 19
1.5.2 JDK的下载与安装 19
1.5.3 设置JDK搜索路径的环境变量 23
1.5.4 Java程序结构的解析 28
1.6 认识Java SE 11新增的功能 31
课后习题 33
第2章 认识数据处理与表达式 36
2.1 数据类型介绍 37
2.1.1 整数类型 37
2.1.2 浮点数类型 38
2.1.3 布尔类型 40
2.1.4 字符类型 41
2.2 变量与常数 42
2.2.1 变量与常数的声明 42
2.2.2 变量与常数的命名规则 43
2.3 基本输入与输出功能 46
2.3.1 在屏幕上输出数据 46
2.3.2 从键盘输入数据 47
2.4 数据类型的转换 49
2.4.1 由小变大模式 49
2.4.2 由大变小模式 49
2.5 表达式与运算符 50
2.5.1 算术运算符 51
2.5.2 关系运算符 53
2.5.3 逻辑运算符 55
2.5.4 移位运算符 57
2.5.5 赋值运算符 58
2.5.6 运算符的优先级 60
2.6 高级应用练习实例 62
2.6.1 多重逻辑运算符的应用 62
2.6.2 位逻辑运算符的运算练习 62
2.6.3 自动类型转换与强制类型转换的比较 63
课后习题 64
第3章 流程控制 67
3.1 认识流程控制 68
3.2 条件选择语句与条件运算符 70
3.2.1 if相关语句 70
3.2.2 if-else相关语句 72
3.2.3 if-else-if相关语句 74
3.2.4 嵌套if语句 76
3.2.5 switch条件选择语句 78
3.2.6 条件运算符 81
3.3 计数循环与条件循环 82
3.3.1 for循环 82
3.3.2 嵌套for循环 84
3.3.3 while循环 85
3.3.4 do-while循环 87
3.3.5 无限循环 88
3.4 控制跳转语句 88
3.4.1 break语句 88
3.4.2 continue语句 90
3.4.3 return语句 92
3.4.4 for-each的for循环 93
3.5 高级应用练习实例 96
3.5.1 使用条件选择语句进行考试成绩的评级 96
3.5.2 闰年的判断与应用 97
3.5.3 使用各种循环计算1~50的累加之和 98
课后习题 99
第4章 过程与函数 102
4.1 结构化与模块化的程序设计 102
4.2 声明并定义类方法 103
4.2.1 含参数行的类方法 104
4.2.2 含返回值的类方法 105
4.2.3 参数传递方式 106
4.3 类变量与变量的作用域 106
4.3.1 类变量 106
4.3.2 变量的作用域 107
4.4 高级应用练习实例 109
4.4.1 阶乘函数 109
4.4.2 斐波那契数列 111
4.4.3 汉诺塔问题 112
课后习题 115
第5章 数组结构 117
5.1 数组简介 118
5.1.1 声明数组的方法 119
5.1.2 指定数组元素的个数 121
5.1.3 数组的另一种声明方法 122
5.1.4 将指定值存入数组 122
5.2 多维数组 123
5.2.1 二维数组 124
5.2.2 三维数组 125
5.2.3 不规则数组 127
5.3 数组的应用与对象类 128
5.3.1 重新创建数组 128
5.3.2 复制数组的方式 129
5.3.3 对象数组 132
5.4 Arrays类 133
5.4.1 fill方法 134
5.4.2 equals 135
5.5 高级应用练习实例 136
5.5.1 矩阵的相加 136
5.5.2 冒泡排序法 137
5.5.3 彩票号码产生器 140
5.5.4 计算学生成绩分布并给出简易成绩分布示意图 141
5.5.5 Arrays类中方法的调用 143
5.5.6 多项式相加 144
5.5.7 插入排序法 146
课后习题 148
第6章 字符与字符串的声明与应用 151
6.1 字符的声明与使用 151
6.1.1 字符的表示法 152
6.1.2 Character类的方法 152
6.2 字符串类 153
6.2.1 创建字符串 153
6.2.2 以字符数组构建法来创建字符串 156
6.3 String类的方法 157
6.3.1 字符串的长度 158
6.3.2 字符串的查找 159
6.3.3 字符串替换 161
6.3.4 字符串的比较 162
6.3.5 字符串的转换 165
6.3.6 字符串的串接 166
6.3.7 提取字符串中的字符或子字符串 168
6.4 StringBuffer类 169
6.4.1 创建StringBuffer类的对象 170
6.4.2 调用StringBuffer类的方法 170
6.5 高级应用练习实例 176
6.5.1 利用字符串数据进行加法运算 176
6.5.2 调用endsWith()方法筛选出文件名 177
课后习题 178
第7章 面向对象程序设计的初探 180
7.1 面向对象的概念 180
7.1.1 消息 181
7.1.2 类 182
7.1.3 继承 183
7.2 封装与信息隐藏 183
7.3 类的命名规则和类的声明与定义 184
7.3.1 类的声明 185
7.3.2 类的成员变量 185
7.3.3 类的成员方法 186
7.3.4 类参数和自变量 187
7.4 类的构造函数 189
7.5 对象的创建与成员数据的使用 191
7.5.1 对象的创建 191
7.5.2 对象的赋值 192
7.5.3 对象的使用 192
7.5.4 修饰词与对象的搭配 194
7.6 对象的作用域与生命周期 196
7.6.1 对象的作用域 196
7.6.2 对象的生命周期 196
7.7 高级应用练习实例 197
7.7.1 计算圆面积的类 197
7.7.2 声明并定义Birthday类 198
7.7.3 二叉树的链表表示法 199
课后习题 202
第8章 继承与多态 204
8.1 认识继承关系 204
8.1.1 基类和派生类 205
8.1.2 单一继承 207
8.1.3 继承权限处理的原则 210
8.1.4 构造函数的调用顺序 215
8.1.5 类构造函数与继承关系 217
8.1.6 类成员的高级处理 218
8.2 多态 223
8.2.1 静态多态 223
8.2.2 动态多态 224
8.2.3 多态的实现 226
8.3 高级应用练习实例 228
8.3.1 编写计算图书销售金额的类 229
8.3.2 以继承方式声明并定义Baseball类 230
课后习题 231
第9章 抽象类、接口、程序包与嵌套类的作用 235
9.1 抽象类 235
9.1.1 抽象类的使用时机 236
9.1.2 声明、定义和使用抽象类 237
9.1.3 抽象类的实现——计算面积 239
9.1.4 使用抽象类存取子类 240
9.2 认识接口 242
9.2.1 接口的定义 242
9.2.2 声明、定义与使用自定义接口 243
9.2.3 使用接口变量创建对象 245
9.2.4 实现多重继承 246
9.2.5 声明子接口 248
9.3 大型程序的开发与应用——程序包的使用 249
9.3.1 程序分解的概念 249
9.3.2 程序包的需求 250
9.3.3 包装与导入程序包 250
9.3.4 导入程序包 252
9.4 类的嵌套结构 254
9.4.1 内部类与静态嵌套类 254
9.4.2 匿名类的介绍 256
9.5 高级应用练习实例 258
9.5.1 以抽象类来实现显示汽车数据的功能 259
9.5.2 用接口来实现多重继承 260
课后习题 261
第10章 Java常用类 265
10.1 Math类 265
10.1.1 Math类的常数 265
10.1.2 随机数的方法 266
10.1.3 数学类的方法 267
10.2 Number类 270
10.2.1 Number类简介 270
10.2.2 Number类的常用方法 271
10.2.3 字符串与数值转换 272
10.3 Vector类 274
10.3.1 Vector类简介 275
10.3.2 Vector类的常用方法 275
10.4 高级应用练习实例 277
10.4.1 彩票幸运号码产生器 277
10.4.2 在数组集合加入不同的数据类型 278
10.4.3 矩阵相乘 279
10.4.4 稀疏矩阵 281
课后习题 284
第11章 窗口环境与事件处理 286
11.1 初探AWT程序包 286
11.1.1 我的第一个窗口程序 287
11.1.2 Pack方法 293
11.2 版面布局 293
11.2.1 流式版面布局 293
11.2.2 边框版面布局 296
11.2.3 网格版面布局 298
11.3 事件处理的实现 300
11.3.1 事件类 301
11.3.2 事件来源与监听器接口 303
11.4 低级事件类 304
11.4.1 ComponentEvent类 305
11.4.2 InputEvent类 305
11.4.3 WindowEvent类 305
11.4.4 MouseEvent类 308
11.4.5 KeyEvent类 309
11.5 高级应用练习实例 311
课后习题 312
第12章 Swing程序包开发守则 314
12.1 Swing程序包的简介 314
12.1.1 Swing窗口的层级结构 316
12.1.2 Swing相关组件的说明 316
12.2 调整Swing组件外观 320
12.3 JButton(按钮)组件 324
12.4 JCheckBox(复选框)组件 329
12.5 JRadioButton(单选按钮)组件 332
12.6 JTextField(文本字段)与 JTextArea(文本框)组件 336
12.7 JList(列表框)组件 340
12.8 创建页签 344
12.9 高级应用练习实例 345
12.9.1 盒式版面布局法 345
12.9.2 重叠版面布局法 347
课后习题 349
第13章 绘图与多媒体功能开发 351
13.1 Java的基本绘图程序包 351
13.1.1 draw成员方法 353
13.1.2 画线 355
13.1.3 画矩形 356
13.1.4 画圆和画椭圆 358
13.1.5 窗口颜色 359
13.1.6 图像重新绘制功能 361
13.2 动画处理与声音播放 363
13.3 高级应用练习实例 366
课后习题 368
第14章 例外处理 370
14.1 什么是例外处理 370
14.1.1 Error类 371
14.1.2 Exception类 372
14.2 认识例外处理 373
14.2.1 例外处理的语法说明 373
14.2.2 finally的使用 375
14.2.3 例外处理的执行流程 376
14.3 抛出例外功能 376
14.3.1 使用throw抛出例外 376
14.3.2 使用throws抛出例外事件 378
14.4 调用方法处理例外 379
14.5 调用类处理例外 381
14.6 例外结构的介绍 382
14.6.1 多个catch程序区块 382
14.6.2 getMessage( ) 383
14.7 自定义例外处理的类 385
14.8 高级应用练习实例 386
课后习题 387
第15章 数据流与文件管理 389
15.1 Java的基本输入输出控制 389
15.1.1 标准输出数据流 390
15.1.2 标准输入数据流 392
15.1.3 java.io程序包 394
15.2 字符数据流 394
15.2.1 抽象基类——Reader与Writer 395
15.2.2 常用的字符数据流类 397
15.3 字节数据流 402
15.3.1 InputStream类与OutputStream类 403
15.3.2 输入数据流类(InputStream) 404
15.3.3 输出数据流类(OutputStream) 406
15.3.4 其他字节数据流类 409
15.4 文件数据流 413
15.4.1 File类 413
15.4.2 文件名过滤接口 418
15.4.3 文件IO数据流 419
15.5 关于缓冲区 422
15.5.1 字节数据流使用缓冲区 422
15.5.2 字符数据流使用缓冲区 425
15.6 高级应用练习实例 427
15.6.1 文件输入数据流——FileInputStream 428
15.6.2 文件输出数据流——FileOutputStream 428
课后习题 430
第16章 泛型与集合对象 432
16.1 泛型的基础概念 432
16.2 集合对象 435
16.2.1 Iterable接口 435
16.2.2 Collection接口 436
16.3 List接口 436
16.3.1 LinkedList类 437
16.3.2 ArrayList类 439
16.4 Set接口 441
16.4.1 HashSet类 442
16.4.2 SortedSet接口 443
16.4.3 TreeSet类 444
16.5 Map接口与SortedMap接口 445
16.5.1 HashMap类 446
16.5.2 TreeMap类 446
16.6 Lambda表达式 448
课后习题 450
第17章 深度剖析多线程 452
17.1 线程的概念 452
17.1.1 顺序执行 453
17.1.2 多任务处理 454
17.2 Java的多任务处理 455
17.2.1 Timer类与TimerTask类 455
17.2.2 多线程机制——Thread类 460
17.2.3 多线程机制——Runnable接口 464
17.3 管理线程 466
17.3.1 线程的生命周期 466
17.3.2 管理线程的方法 467
17.4 多线程高级处理 472
17.4.1 线程分组 472
17.4.2 数据同步操作的问题 474
17.5 高级应用练习实例 479
课后习题 481
第18章 精通网络程序设计 483
18.1 认识网络应用程序 483
18.1.1 网络的基本概念 484
18.1.2 网络应用程序的必备程序包 484
18.1.3 IP地址简介 485
18.2 InetAddress类 485
18.2.1 InetAddress类中的静态方法 487
18.2.2 InetAddress类中的非静态方法 488
18.3 用Socket来建立通信 489
18.3.1 Java的Socket接口 490
18.3.2 Socket应用程序 490
18.3.3 服务器端与Socket 491
18.3.4 客户端与Socket 495
18.4 UDP通信 497
18.4.1 DatagramSocket类 497
18.4.2 DatagramPacket类 498
18.5 URL类 502
18.6 高级应用练习实例 506
18.6.1 查询网络域名所属的IP地址 506
18.6.2 使用URL读取文件内容 507
课后习题 508
附录 课后习题参考答案 510

教学资源推荐
作者: [美]本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)著
作者: 康莉; 李宽
参考读物推荐
作者: (美) Stanley B. Lippman  著
作者: 高春艳 张金辉 等编著