《Java语言程序设计:基础篇(英文第十版)》是Java语言的经典教材中文版分为基础章节和高级章节,主要介绍编程基础、面向对象编程、GUI程序设计、数据结构和算法、Java编程等等。本书用实例讲解解题技巧,提供大量程序清单,每章配备大量复习题和编程练习,帮助读者掌握编程技术,并将所学技术应用于解决实际应用开发中遇到的问题。基础章节主要介绍基础编程、语法结构、面向对象编程、继承和多态、异常处理和文本一/O、类和接口等。
目录
- Introduction to Java Programming and Data Structures, Comprehensive Version, Eleventh Edition
- 出版者的话
- 中文版序
- 译者序
- 前言
- 第1章 计算机、程序和Java概述 1
- 1.1 引言 1
- 1.2 什么是计算机 2
- 1.2.1 中央处理器 2
- 1.2.2 比特和字节 3
- 1.2.3 内存 3
- 1.2.4 存储设备 4
- 1.2.5 输入和输出设备 4
- 1.2.6 通信设备 5
- 1.3 编程语言 6
- 1.3.1 机器语言 6
- 1.3.2 汇编语言 6
- 1.3.3 语言 7
- 1.4 操作 8
- 1.4.1 控制和监视活动 8
- 1.4.2 分配和调配资源 8
- 1.4.3 调度操作 8
- 1.5 Java、万维网以及其他 9
- 1.6 Java语言规范、API、JDK、JRE和IDE 10
- 1.7 一个简单的Java程序 11
- 1.8 创建、编译和执行Java程序 13
- 1.9 程序设计风格和文档 16
- 1.9.1 正确的注释和注释风格 16
- 1.9.2 正确的缩进和空白 16
- 1.9.3 块的风格 17
- 1.10 程序设计 17
- 1.10.1 语法 17
- 1.10.2 运行时 18
- 1.10.3 逻辑 19
- 1.10.4 常见 19
- 1.11 使用NetBeans开发Java程序 20
- 1.11.1 创建Java工程 21
- 1.11.2 创建Java类 22
- 1.11.3 编译和运行类 22
- 1.12 使用Eclipse开发Java程序 23
- 1.12.1 创建Java工程 23
- 1.12.2 创建Java类 24
- 1.12.3 编译和运行类 24
- 关键术语 25
- 本章小结 26
- 测试题 27
- 编程练习题 27
- 第2章 基本程序设计 29
- 2.1 引言 29
- 2.2 编写简单的程序 29
- 2.3 从控制台读取输入 32
- 2.4 标识符 35
- 2.5 变量 35
- 2.6 赋值语句和赋值表达式 37
- 2.7 命名常量 38
- 2.8 命名习惯 39
- 2.9 数值数据类型和操作 39
- 2.9.1 数值类型 39
- 2.9.2 从键盘读取数值 40
- 2.9.3 数值操作符 40
- 2.9.4 幂运算 42
- 2.10 数值型字面值 43
- 2.10.1 整型字面值 43
- 2.10.2 浮点型字面值 43
- 2.10.3 科学记数法 44
- 2.11 表达式求值以及操作符优先级 44
- 2.12 示例学习:显示当前时间 45
- 2.13 增强赋值操作符 47
- 2.14 自增和自减操作符 48
- 2.15 数值类型转换 50
- 2.16 软件开发过程 52
- 2.17 示例学习:整钱兑零 55
- 2.18 常见和陷阱 57
- 关键术语 59
- 本章小结 60
- 测试题 60
- 编程练习题 60
- 第3章 选择 65
- 3.1 引言 65
- 3.2 boolean数据类型 65
- 3.3 if语句 67
- 3.4 双分支if-else语句 69
- 3.5 嵌套的if语句和多分支if-else语句 70
- 3.6 常见和陷阱 72
- 3.7 产生随机数 75
- 3.8 示例学习:计算身体质量指数 77
- 3.9 示例学习:计算税率 78
- 3.10 逻辑操作符 81
- 3.11 示例学习:判定闰年 84
- 3.12 示例学习:彩票 85
- 3.13 switch语句 87
- 3.14 条件操作 90
- 3.15 操作符的优先级和结合规则 91
- 3.16 调试 92
- 关键术语 93
- 本章小结 93
- 测试题 94
- 编程练习题 94
- 第4章 数学函数、字符和字符串 102
- 4.1 引言 102
- 4.2 常用数学函数 103
- 4.2.1 三角函数方法 103
- 4.2.2 指数函数方法 103
- 4.2.3 取整方法 104
- 4.2.4 min、max和abs方法 104
- 4.2.5 random方法 105
- 4.2.6 示例学习:计算三角形的角度 105
- 4.3 字符数据类型和操作 107
- 4.3.1 Unicode和ASCII码 107
- 4.3.2 特殊字符的转义序列 108
- 4.3.3 字符型数据与数值型数据之间的转换 108
- 4.3.4 字符的比较和测试 109
- 4.4 String类型 111
- 4.4.1 获取字符串长度 112
- 4.4.2 从字符串中获取字符 112
- 4.4.3 连接字符串 113
- 4.4.4 字符串的转换 113
- 4.4.5 从控制台读取字符串 114
- 4.4.6 从控制台读取字符 114
- 4.4.7 字符串比较 115
- 4.4.8 获得子字符串 116
- 4.4.9 获取字符串中的字符或者子串 117
- 4.4.10 字符串和数字间的转换 118
- 4.5 示例学习 120
- 4.5.1 猜测生日 120
- 4.5.2 将十六进制数转换为十进制数 123
- 4.5.3 使用字符串修改彩票程序 124
- 4.6 格式化控制台输出 126
- 关键术语 129
- 本章小结 129
- 测试题 130
- 编程练习题 130
- 第5章 循环 136
- 5.1 引言 136
- 5.2 while循环 137
- 5.3 示例学习:猜数字 139
- 5.4 循环设计策略 142
- 5.5 使用用户确认或者标记值控制循环 144
- 5.6 do-while循环 146
- 5.7 for循环 148
- 5.8 采用哪种循环 151
- 5.9 嵌套循环 153
- 5.10 小化数值 155
- 5.11 示例学习 156
- 5.11.1 求大公约数 156
- 5.11.2 预测未来学费 158
- 5.11.3 将十进制数转换为十六进制数 158
- 5.12 关键字break和continue 160
- 5.13 示例学习:判断回文 163
- 5.14 示例学习:显示素数 164
- 关键术语 167
- 本章小结 167
- 测试题 167
- 编程练习题 167
- 第6章 方法 176
- 6.1 引言 176
- 6.2 定义方法 177
- 6.3 调用方法 178
- 6.4 void方法与返回值方法 180
- 6.5 按值传参 183
- 6.6 模块化代码 186
- 6.7 示例学习:将十六进制数转换为十进制数 188
- 6.8 重载方法 190
- 6.9 变量的作用域 192
- 6.10 示例学习:生成随机字符 193
- 6.11 方法抽象和逐步求精 195
- 6.11.1 自顶向下的设计 196
- 6.11.2 自顶向下和自底向上的实现 197
- 6.11.3 实现细节 199
- 6.11.4 逐步求精的优势 201
- 关键术语 202
- 本章小结 202
- 测试题 203
- 编程练习题 203
- 第7章 一维数组 212
- 7.1 引言 212
- 7.2 数组的基础知识 212
- 7.2.1 声明数组变量 213
- 7.2.2 创建数组 213
- 7.2.3 数组大小和默认值 214
- 7.2.4 访问数组元素 214
- 7.2.5 数组初始化简写方式 215
- 7.2.6 处理数组 215
- 7.2.7 foreach循环 217
- 7.3 示例学习:分析数字 219
- 7.4 示例学习:一副牌 220
- 7.5 复制数组 222
- 7.6 将数组传递给方法 223
- 7.7 方法返回数组 226
- 7.8 示例学习:统计每个字母出现的次数 226
- 7.9 可变长参数列表 230
- 7.10 数组的查找 230
- 7.10.1 线性查找法 231
- 7.10.2 二分查找法 231
- 7.11 数组的排序 234
- 7.12 Arrays类 235
- 7.13 命令行参数 237
- 7.13.1 向main方法传递字符串 237
- 7.13.2 示例学习:计算器 238
- 关键术语 239
- 本章小结 240
- 测试题 240
- 编程练习题 240
- 第8章 多维数组 248
- 8.1 引言 248
- 8.2 二维数组基础 248
- 8.2.1 声明二维数组变量并创建二维数组 249
- 8.2.2 获取二维数组的长度 250
- 8.2.3 不规则数组 250
- 8.3 处理二维数组 251
- 8.4 将二维数组传递给方法 253
- 8.5 示例学习:多选题测验评分 254
- 8.6 示例学习:找出距离近的点对 255
- 8.7 示例学习:数独 257
- 8.8 多维数组 260
- 8.8.1 示例学习:每日温度和湿度 261
- 8.8.2 示例学习:猜生日 263
- 本章小结 264
- 测试题 264
- 编程练习题 264
- 第9章 对象和类 276
- 9.1 引言 276
- 9.2 为对象定义类 277
- 9.3 示例:定义类和创建对象 278
- 9.4 使用构造方法构造对象 283
- 9.5 通过引用变量访问对象 284
- 9.5.1 引用变量和引用类型 284
- 9.5.2 访问对象的数据和方法 285
- 9.5.3 引用数据域和null值 285
- 9.5.4 基本类型变量和引用类型变量的区别 286
- 9.6 使用Java库中的类 288
- 9.6.1 Date类 288
- 9.6.2 Random类 289
- 9.6.3 Point2D类 289
- 9.7 静态变量、常量和方法 291
- 9.8 可见性修饰符 296
- 9.9 数据域封装 297
- 9.10 向方法传递对象参数 300
- 9.11 对象数组 303
- 9.12 不可变对象和类 305
- 9.13 变量的作用域 307
- 9.14 this引用 308
- 9.14.1 使用this引用数据域 308
- 9.14.2 使用this调用构造方法 309
- 关键术语 310
- 本章小结 311
- 测试题 311
- 编程练习题 311
- 第10章 面向对象思考 316
- 10.1 引言 316
- 10.2 类的抽象和封装 316
- 10.3 面向对象的思想 320
- 10.4 类的关系 322
- 10.4.1 关联 323
- 10.4.2 聚集和组合 324
- 10.5 示例学习:设计Course类 325
- 10.6 示例学习:设计栈类 327
- 10.7 将基本数据类型值作为对象处理 329
- 10.8 基本类型和包装类类型之间的自动转换 332
- 10.9 BigInteger和BigDecimal类 333
- 10.10 String类 334
- 10.10.1 构造字符串 335
- 10.10.2 不可变字符串与驻留字符串 335
- 10.10.3 替换和拆分字符串 336
- 10.10.4 使用模式匹配、替换和拆分 336
- 10.10.5 字符串与数组之间的转换 337
- 10.10.6 将字符和数值转换成字符串 338
- 10.10.7 格式化字符串 338
- 10.11 StringBuilder类和StringBuffer类 340
- 10.11.1 修改StringBuilder中的字符串 341
- 10.11.2 toString、capacity、length、setLength和charAt方法 343
- 10.11.3 示例学习:判断回文串时忽略既非字母又非数字的字符 343
- 关键术语 346
- 本章小结 346
- 测试题 346
- 编程练习题 346
- 第11章 继承和多态 354
- 11.1 引言 354
- 11.2 父类和子类 354
- 11.3 使用super关键字 360
- 11.3.1 调用父类的构造方法 360
- 11.3.2 构造方法链 361
- 11.3.3 调用父类的普通方法 362
- 11.4 方法重写 363
- 11.5 方法重写与重载 364
- 11.6 Object类及其toString()方法 366
- 11.7 多态 366
- 11.8 动态绑定 367
- 11.9 对象转换和instanceof操作符 370
- 11.10 Object类的equals方法 374
- 11.11 ArrayList类 375
- 11.12 关于列表的一些有用方法 381
- 11.13 示例学习:自定义栈类 382
- 11.14 protected数据和方法 383
- 11.15 防止继承和