Java语言程序设计(基础篇)(英文版·原书第12版) / 经典原版书库
定价:¥149.00
作者: [美]梁勇(Y.Daniel Liang)
出版时间:2024-12-10
出版社:机械工业出版社
- 机械工业出版社
- 9787111767268
- 1-1
- 2024-12-10
- 1782
内容简介
本书是Java语言的经典教材,分为基础篇和进阶篇,采用“基础优先,问题驱动”的方式,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书通过示例讲解问题求解技巧,提供大量的程序清单,每章配有丰富的复习题和编程练习题,帮助读者掌握编程技术,并学会应用所学技术解决实际开发中遇到的问题。本书可作为高等院校计算机相关专业程序设计课程的教材,也可作为Java语言及编程爱好者的参考资料。
目录
目 录
第1章 计算机、程序和Java概述 1
1.1 引言 2
1.2 什么是计算机 2
1.3 编程语言 7
1.4 操作系统 9
1.5 Java的特性和应用 10
1.6 Java语言规范、API、JDK、
JRE和IDE 11
1.7 一个简单的Java程序 12
1.8 创建、编译和执行Java程序 15
1.9 程序设计风格和文档 18
1.10 程序设计错误 19
1.11 使用NetBeans开发Java程序 23
1.12 使用Eclipse开发Java程序 26
第2章 基本程序设计 33
2.1 引言 34
2.2 编写简单的程序 34
2.3 从控制台读取输入 37
2.4 标识符 40
2.5 变量 40
2.6 赋值语句和赋值表达式 42
2.7 命名常量 43
2.8 命名习惯 44
2.9 数值数据类型和操作 45
2.10 数值型字面值 48
2.11 JShell 50
2.12 表达式求值和操作符优先级 52
2.13 示例学习:显示当前时间 54
2.14 增强赋值操作符 56
2.15 自增和自减操作符 57
2.16 数值类型转换 58
2.17 软件开发过程 61
2.18 示例学习:计算货币单位 64
2.19 常见错误和陷阱 67
第3章 选择 77
3.1 引言 78
3.2 boolean数据类型、值和表达式 78
3.3 if语句 80
3.4 双分支if-else语句 82
3.5 嵌套的if语句和多分支if-else
语句 83
3.6 常见错误和陷阱 85
3.7 产生随机数 89
3.8 示例学习:计算体重指数 91
3.9 示例学习:计算税率 92
3.10 逻辑操作符 95
3.11 示例学习:判断闰年 99
3.12 示例学习:彩票 100
3.13 switch语句 102
3.14 条件操作符 105
3.15 操作符的优先级和结合规则 106
3.16 调试 108
第4章 数学函数、字符和字符串 121
4.1 引言 122
4.2 常用数学函数 122
4.3 字符数据类型和操作 126
4.4 String类型 131
4.5 示例学习 140
4.6 格式化控制台输出 146
第5章 循环 159
5.1 引言 160
5.2 while循环 160
5.3 示例学习:猜数字 163
5.4 循环设计策略 166
5.5 使用用户确认或标记值控制循环 168
5.6 do-while循环 171
5.7 for循环 173
5.8 采用哪种循环 176
5.9 嵌套循环 178
5.10 最小化数值错误 180
5.11 示例学习 182
5.12 关键字break和continue 186
5.13 示例学习:判断回文 189
5.14 示例学习:显示素数 191
第6章 方法 205
6.1 引言 206
6.2 定义方法 206
6.3 调用方法 208
6.4 空方法与有返回值的方法 211
6.5 按值传参 213
6.6 模块化代码 217
6.7 示例学习:将十六进制数转换为
十进制数 219
6.8 重载方法 221
6.9 变量的作用域 224
6.10 示例学习:生成随机字符 225
6.11 方法抽象和逐步求精 227
第7章 一维数组 249
7.1 引言 250
7.2 数组基础 250
7.3 示例学习:分析数字 257
7.4 示例学习:一副牌 258
7.5 复制数组 260
7.6 将数组传递给方法 261
7.7 方法返回数组 264
7.8 示例学习:统计每个字母出现的
次数 265
7.9 可变长参数列表 268
7.10 查找数组 269
7.11 排序数组 273
7.12 Arrays类 274
7.13 命令行参数 276
第8章 多维数组 289
8.1 引言 290
8.2 二维数组基础 290
8.3 处理二维数组 293
8.4 将二维数组传递给方法 295
8.5 示例学习:给多选题测验评分 296
8.6 示例学习:找出最近点对 298
8.7 示例学习:数独 300
8.8 多维数组 303
第9章 对象和类 323
9.1 引言 324
9.2 为对象定义类 324
9.3 示例:定义类和创建对象 326
9.4 使用构造方法构造对象 331
9.5 通过引用变量访问对象 332
9.6 使用Java库中的类 336
9.7 静态变量、常量和方法 339
9.8 可见性修饰符 344
9.9 数据域封装 346
9.10 向方法传递对象参数 349
9.11 对象数组 353
9.12 不可变对象和类 355
9.13 变量的作用域 357
9.14 this引用 358
第10章 面向对象 367
10.1 引言 368
10.2 类的抽象和封装 368
10.3 面向对象思想 372
10.4 类的关系 375
10.5 示例学习:设计Course类 378
10.6 示例学习:设计栈类 380
10.7 将基本数据类型值作为对象
处理 382
10.8 基本类型和包装类类型之间的
自动转换 386
10.9 BigInteger和BigDecimal类 387
10.10 String类 388
10.11 StringBuilder类和
StringBuffer类 395
第11章 继承和多态 411
11.1 引言 412
11.2 父类和子类 412
11.3 使用super关键字 418
11.4 方法重写 421
11.5 方法重写与重载 422
11.6 Object类及其toString()方法 424
11.7 多态 425
11.8 动态绑定 425
11.9 对象转换和instanceof操作符 429
11.10 Object类的equals方法 433
11.11 ArrayList类 434
11.12 关于列表的一些有用方法 440
11.13 示例学习:自定义栈类 441
11.14 protected数据和方法 442
11.15 防止继承和重写 445
第12章 异常处理和文本I/O 453
12.1 引言 454
12.2 异常处理概述 454
12.3 异常类型 459
12.4 声明、抛出和捕获异常 462
12.5 finally子句 470
12.6 何时使用异常 472
12.7 重新抛出异常 472
12.8 链式异常 473
12.9 创建自定义异常类 474
12.10 File类 477
12.11 文件输入和输出 480
12.12 从Web上读取数据 487
12.13 示例学习:Web爬虫 488
第13章 抽象类和接口 499
13.1 引言 500
13.2 抽象类 500
13.3 示例学习:抽象的Number类 505
13.4 示例学习:Calendar和GregorianCalendar 507
13.5 接口 510
13.6 Comparable接口 514
13.7 Cloneable接口 518
13.8 接口与抽象类 523
13.9 示例学习:Rational类 526
13.10 类的设计原则 531
第14章 JavaFX基础 541
14.1 引言 542
14.2 JavaFX与Swing和AWT的比较 542
14.3 JavaFX程序的基本结构 542
14.4 面板、组、UI控件和形状 545
14.5 属性绑定 548
14.6 结点的共同属性和方法 551
14.7 Color类 553
14.8 Font类 554
14.9 Image和ImageView类 556
14.10 布局面板和组 558
14.11 形状 567
14.12 示例学习:ClockPane类 580
第15章 事件驱动编程和动画 593
15.1 引言 594
15.2 事件和事件源 596
15.3 注册处理器和处理事件 597
15.4 内部类 601
15.5 匿名内部类处理器 602
15.6 使用lambda表达式简化事件处理 605
15.7 示例学习:贷款计算器 609
15.8 鼠标事件 611
15.9 键盘事件 613
15.10 可观察对象的监听器 616
15.11 动画 618
15.12 示例学习:弹球 626
15.13 示例学习:美国地图 630
第16章 JavaFX UI控件和多媒体 643
16.1 引言 644
16.2 Labeled和Label 644
16.3 Button 646
16.4 CheckBox 648
16.5 RadioButton 651
16.6 TextField 654
16.7 TextArea 655
16.8 ComboBox 659
16.9 ListView 662
16.10 ScrollBar 665
16.11 Slider 668
16.12 示例学习:开发井字游戏 671
16.13 视频和音频 676
16.14 示例学习:国旗和国歌 679
第17章 二进制 I/O 691
17.1 引言 692
17.2 Java如何处理文本I/O 692
17.3 文本I/O与二进制I/O 693
17.4 二进制I/O类 694
17.5 示例学习:复制文件 704
17.6 对象I/O 706
17.7 随机访问文件 711
第18章 递归 719
18.1 引言 720
18.2 示例学习:计算阶乘 720
18.3 示例学习:计算斐波那契数 723
18.4 使用递归解决问题 726
18.5 递归辅助方法 728
18.6 示例学习:获取目录的大小 731
18.7 示例学习:汉诺塔 733
18.8 示例学习:分形 736
18.9 递归与迭代 740
18.10 尾递归 740
附录A Java关键字和保留字 751
附录B ASCII字符集 752
附录C 操作符优先级表 754
附录D Java修饰符 756
附录E 特殊浮点值 758
附录F 数系 759
附录G 位操作符 763
附录H 正则表达式 764
附录I 枚举类型 770
附录J 大O、大和大表示法 775
第1章 计算机、程序和Java概述 1
1.1 引言 2
1.2 什么是计算机 2
1.3 编程语言 7
1.4 操作系统 9
1.5 Java的特性和应用 10
1.6 Java语言规范、API、JDK、
JRE和IDE 11
1.7 一个简单的Java程序 12
1.8 创建、编译和执行Java程序 15
1.9 程序设计风格和文档 18
1.10 程序设计错误 19
1.11 使用NetBeans开发Java程序 23
1.12 使用Eclipse开发Java程序 26
第2章 基本程序设计 33
2.1 引言 34
2.2 编写简单的程序 34
2.3 从控制台读取输入 37
2.4 标识符 40
2.5 变量 40
2.6 赋值语句和赋值表达式 42
2.7 命名常量 43
2.8 命名习惯 44
2.9 数值数据类型和操作 45
2.10 数值型字面值 48
2.11 JShell 50
2.12 表达式求值和操作符优先级 52
2.13 示例学习:显示当前时间 54
2.14 增强赋值操作符 56
2.15 自增和自减操作符 57
2.16 数值类型转换 58
2.17 软件开发过程 61
2.18 示例学习:计算货币单位 64
2.19 常见错误和陷阱 67
第3章 选择 77
3.1 引言 78
3.2 boolean数据类型、值和表达式 78
3.3 if语句 80
3.4 双分支if-else语句 82
3.5 嵌套的if语句和多分支if-else
语句 83
3.6 常见错误和陷阱 85
3.7 产生随机数 89
3.8 示例学习:计算体重指数 91
3.9 示例学习:计算税率 92
3.10 逻辑操作符 95
3.11 示例学习:判断闰年 99
3.12 示例学习:彩票 100
3.13 switch语句 102
3.14 条件操作符 105
3.15 操作符的优先级和结合规则 106
3.16 调试 108
第4章 数学函数、字符和字符串 121
4.1 引言 122
4.2 常用数学函数 122
4.3 字符数据类型和操作 126
4.4 String类型 131
4.5 示例学习 140
4.6 格式化控制台输出 146
第5章 循环 159
5.1 引言 160
5.2 while循环 160
5.3 示例学习:猜数字 163
5.4 循环设计策略 166
5.5 使用用户确认或标记值控制循环 168
5.6 do-while循环 171
5.7 for循环 173
5.8 采用哪种循环 176
5.9 嵌套循环 178
5.10 最小化数值错误 180
5.11 示例学习 182
5.12 关键字break和continue 186
5.13 示例学习:判断回文 189
5.14 示例学习:显示素数 191
第6章 方法 205
6.1 引言 206
6.2 定义方法 206
6.3 调用方法 208
6.4 空方法与有返回值的方法 211
6.5 按值传参 213
6.6 模块化代码 217
6.7 示例学习:将十六进制数转换为
十进制数 219
6.8 重载方法 221
6.9 变量的作用域 224
6.10 示例学习:生成随机字符 225
6.11 方法抽象和逐步求精 227
第7章 一维数组 249
7.1 引言 250
7.2 数组基础 250
7.3 示例学习:分析数字 257
7.4 示例学习:一副牌 258
7.5 复制数组 260
7.6 将数组传递给方法 261
7.7 方法返回数组 264
7.8 示例学习:统计每个字母出现的
次数 265
7.9 可变长参数列表 268
7.10 查找数组 269
7.11 排序数组 273
7.12 Arrays类 274
7.13 命令行参数 276
第8章 多维数组 289
8.1 引言 290
8.2 二维数组基础 290
8.3 处理二维数组 293
8.4 将二维数组传递给方法 295
8.5 示例学习:给多选题测验评分 296
8.6 示例学习:找出最近点对 298
8.7 示例学习:数独 300
8.8 多维数组 303
第9章 对象和类 323
9.1 引言 324
9.2 为对象定义类 324
9.3 示例:定义类和创建对象 326
9.4 使用构造方法构造对象 331
9.5 通过引用变量访问对象 332
9.6 使用Java库中的类 336
9.7 静态变量、常量和方法 339
9.8 可见性修饰符 344
9.9 数据域封装 346
9.10 向方法传递对象参数 349
9.11 对象数组 353
9.12 不可变对象和类 355
9.13 变量的作用域 357
9.14 this引用 358
第10章 面向对象 367
10.1 引言 368
10.2 类的抽象和封装 368
10.3 面向对象思想 372
10.4 类的关系 375
10.5 示例学习:设计Course类 378
10.6 示例学习:设计栈类 380
10.7 将基本数据类型值作为对象
处理 382
10.8 基本类型和包装类类型之间的
自动转换 386
10.9 BigInteger和BigDecimal类 387
10.10 String类 388
10.11 StringBuilder类和
StringBuffer类 395
第11章 继承和多态 411
11.1 引言 412
11.2 父类和子类 412
11.3 使用super关键字 418
11.4 方法重写 421
11.5 方法重写与重载 422
11.6 Object类及其toString()方法 424
11.7 多态 425
11.8 动态绑定 425
11.9 对象转换和instanceof操作符 429
11.10 Object类的equals方法 433
11.11 ArrayList类 434
11.12 关于列表的一些有用方法 440
11.13 示例学习:自定义栈类 441
11.14 protected数据和方法 442
11.15 防止继承和重写 445
第12章 异常处理和文本I/O 453
12.1 引言 454
12.2 异常处理概述 454
12.3 异常类型 459
12.4 声明、抛出和捕获异常 462
12.5 finally子句 470
12.6 何时使用异常 472
12.7 重新抛出异常 472
12.8 链式异常 473
12.9 创建自定义异常类 474
12.10 File类 477
12.11 文件输入和输出 480
12.12 从Web上读取数据 487
12.13 示例学习:Web爬虫 488
第13章 抽象类和接口 499
13.1 引言 500
13.2 抽象类 500
13.3 示例学习:抽象的Number类 505
13.4 示例学习:Calendar和GregorianCalendar 507
13.5 接口 510
13.6 Comparable接口 514
13.7 Cloneable接口 518
13.8 接口与抽象类 523
13.9 示例学习:Rational类 526
13.10 类的设计原则 531
第14章 JavaFX基础 541
14.1 引言 542
14.2 JavaFX与Swing和AWT的比较 542
14.3 JavaFX程序的基本结构 542
14.4 面板、组、UI控件和形状 545
14.5 属性绑定 548
14.6 结点的共同属性和方法 551
14.7 Color类 553
14.8 Font类 554
14.9 Image和ImageView类 556
14.10 布局面板和组 558
14.11 形状 567
14.12 示例学习:ClockPane类 580
第15章 事件驱动编程和动画 593
15.1 引言 594
15.2 事件和事件源 596
15.3 注册处理器和处理事件 597
15.4 内部类 601
15.5 匿名内部类处理器 602
15.6 使用lambda表达式简化事件处理 605
15.7 示例学习:贷款计算器 609
15.8 鼠标事件 611
15.9 键盘事件 613
15.10 可观察对象的监听器 616
15.11 动画 618
15.12 示例学习:弹球 626
15.13 示例学习:美国地图 630
第16章 JavaFX UI控件和多媒体 643
16.1 引言 644
16.2 Labeled和Label 644
16.3 Button 646
16.4 CheckBox 648
16.5 RadioButton 651
16.6 TextField 654
16.7 TextArea 655
16.8 ComboBox 659
16.9 ListView 662
16.10 ScrollBar 665
16.11 Slider 668
16.12 示例学习:开发井字游戏 671
16.13 视频和音频 676
16.14 示例学习:国旗和国歌 679
第17章 二进制 I/O 691
17.1 引言 692
17.2 Java如何处理文本I/O 692
17.3 文本I/O与二进制I/O 693
17.4 二进制I/O类 694
17.5 示例学习:复制文件 704
17.6 对象I/O 706
17.7 随机访问文件 711
第18章 递归 719
18.1 引言 720
18.2 示例学习:计算阶乘 720
18.3 示例学习:计算斐波那契数 723
18.4 使用递归解决问题 726
18.5 递归辅助方法 728
18.6 示例学习:获取目录的大小 731
18.7 示例学习:汉诺塔 733
18.8 示例学习:分形 736
18.9 递归与迭代 740
18.10 尾递归 740
附录A Java关键字和保留字 751
附录B ASCII字符集 752
附录C 操作符优先级表 754
附录D Java修饰符 756
附录E 特殊浮点值 758
附录F 数系 759
附录G 位操作符 763
附录H 正则表达式 764
附录I 枚举类型 770
附录J 大O、大和大表示法 775







