注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计像计算机科学家一样思考Java(第二版)

像计算机科学家一样思考Java(第二版)

像计算机科学家一样思考Java(第二版)

定 价:¥128.00

作 者: [美]艾伦,[美]克里斯·梅菲尔德
出版社: 中国电力出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787519856724 出版时间: 2021-08-01 包装: 平装-胶订
开本: 16开 页数: 424 字数:  

内容简介

  每次揭示一个概念:通过带有范例的一系列小步骤,来逐渐解决某个复杂的问题。告诉你如何描述问题、如何构思解决方案,如何开发、测试并调试程序。学习输入与输出、决策与循环、类与方法、字符串与数组,以及递归与多态。告诉你怎样选出合适的程序开发方法,以及如何运用重要的调试技能来排除程序故障。

作者简介

  Allen Downey是Olin College of Engineering的教授。他拥有加大伯克利的计算机科学博士学位与MIT的硕士及学士学位。Chris Mayfield是James Madison University的计算机科学副教授。他拥有普渡大学的计算机科学博士学位及犹他大学的两个学士学位。

图书目录

 目录
前言 . 1
第1 章 计算机编程 . 11
1.1 什么是计算机? 11
1.2 什么是编程? 12
1.3 Hello World 程序 .13
1.4 编译Java 程序 15
1.5 显示两条信息 17
1.6 调整源代码的格式 19
1.7 使用转义符 .20
1.8 什么是计算机科学? .21
1.9 调试程序 22
1.10 词汇表 23
1.11 习题 .26
第2 章 变量与运算符 . 29
2.1 声明变量 29
2.2 给变量赋值 .31
2.3 内存示意图 .32
2.4 打印变量(显示变量的值) 33
2.5 算数运算符 .35
2.6 浮点数 36
2.7 舍入误差 38
2.8 字符串运算 .39
2.9 编译器的错误消息 41
2.10 其他类型的错误 .42
2.11 词汇表 .44
2.12 习题 .46
第3 章 输入与输出 . 49
3.1 System 类 .49
3.2 Scanner 类 51
3.3 编程语言的要素 52
3.4 字面量与常量 54
3.5 调整输出格式 55
3.6 解读错误消息 57
3.7 手动类型转换运算符 .59
3.8 求余运算符 .60
3.9 综合运用所学知识编写范例程序 61
3.10 Scanner 的bug 63
3.11 词汇表 .65
3.12 习题 .66
第4 章 方法与测试 . 71
4.1 定义新方法 .71
4.2 执行流 73
4.3 形式参数与实际参数 .74
4.4 多参数的方法 76
4.5 栈示意图 78
4.6 Math 类的方法 79
4.7 方法之间的组合 80
4.8 返回值 82
4.9 渐进式开发(增量开发) 84
4.10 词汇表 87
4.11 习题 .88
第5 章 条件与逻辑 . 95
5.1 关系运算符 .95
5.2 if-else 语句 .96
5.3 串接与嵌套 .99
5.4 switch 语句 100
5.5 逻辑运算符 102
5.6 德摩根定律 103
5.7 boolean 变量 105
5.8 boolean 方法 106
5.9 验证输入值 107
5.10 范例程序 .109
5.11 词汇表  110
5.12 习题  111
第6 章 循环与字符串  117
6.1 while 语句 . 117
6.2 递增与递减 120
6.3 for 语句 121
6.4 嵌套循环 123
6.5 字符 .124
6.6 怎样在for 与while 循环之间选择 126
6.7 迭代字符串 127
6.8 indexOf 方法 128
6.9 子字符串 129
6.10 对比字符串的内容 .130
6.11 调整字符串的格式 .132
6.12 词汇表 .133
6.13 习题 134
第7 章 数组与引用  139
7.1 创建数组 140
7.2 给元素赋值 141
7.3 显示数组的内容 143
7.4 复制数组 145
7.5 遍历数组 147
7.6 生成随机数 149
7.7 收集绘制直方图所需的统计数据 .150
7.8 增强版的for 循环 .153
7.9 统计字符出现的次数 154
7.10 词汇表 .156
7.11 习题 158
第8 章 递归方法  163
8.1 不带返回值的递归方法 .163
8.2 用栈图描述递归 165
8.3 带有返回值的递归方法 .167
8.4 信任那些应该能够成立的方法 170
8.5 用递归实现正向计数 172
8.6 二进制计数系统 173
8.7 通过递归把十进制数表示成二进制数 175
8.8 CodingBat 网站上面的编程问题 176
8.9 词汇表 179
8.10 习题 180
第9 章 不可变的对象  187
9.1 原始数据与对象之间的区别 187
9.2 null 关键字 189
9.3 字符串是不可变的 190
9.4 与原始类型相对应的包装类 192
9.5 命令行参数 194
9.6 验证参数 196
9.7 用BigInteger 做运算 198
9.8 增量设计(渐进式的设计) 199
9.9 让程序变得更加通用 201
9.10 词汇表 .203
9.11 习题 204
第10 章 可变的对象  211
10.1 Point 对象  211
10.2 把对象用作参数 213
10.3 把对象用作返回值 .214
10.4 Rectangle 是可变的 215
10.5 再谈别名 .217
10.6 Java 库的源代码 .218
10.7 类图 219
10.8 再谈作用域 221
10.9 垃圾收集(垃圾回收) 222
10.10 可变对象与不可变对象的区别 .223
10.11 StringBuilder 对象 224
10.12 词汇表 225
10.13 习题 226
第11 章 类的设计 . 229
11.1 Time 类 230
11.2 构造器 231
11.3 值构造器 .233
11.4 Getter 与Setter .234
11.5 显示对象 .237
11.6 toString 方法 .237
11.7 equals 方法 .239
11.8 将两个Time 相加 241
11.9 词汇表 244
11.10 习题 245
第12 章 对象数组 . 249
12.1 Card 对象 250
12.2 给Card 类型定义toString 方法 251
12.3 类变量 .253
12.4 compareTo 方法 255
12.5 Card 对象应该是不可变的 .256
12.6 由Card 构成的数组 257
12.7 顺序搜索 .260
12.8 二分搜索 .260
12.9 追踪代码的执行情况 262
12.10 词汇表 263
12.11 习题 264
第13 章 把数组封装成对象  267
13.1 定义新类来封装一叠牌 267
13.2 洗牌 269
13.3 选择排序法 271
13.4 归并排序法 272
13.5 如何表示一叠牌之中的某一部分 273
13.6 把两小叠牌合并成一大叠 274
13.7 添加递归逻辑 275
13.8 静态语境 .276
13.9 如何表示数量可变的一叠牌 .279
13.10 推进War 游戏 281
13.11 词汇表 283
13.12 习题 284
第14 章 扩展已有的类  287
14.1 CardCollection 类 288
14.2 继承 291
14.3 发牌 293
14.4 Player 类 .295
14.5 Eights 类 .298
14.6 类之间的关系 301
14.7 词汇表 .302
14.8 习题 303
第15 章 由数组所构成的数组  305
15.1 康威生命游戏 305
15.2 Cell 类 307
15.3 二维数组 .309
15.4 GridCanvas 类  311
15.5 GridCanvas 类中的其他方法 312
15.6 启动游戏 .313
15.7 实现游戏的主循环 .315
15.8 处理异常 .315
15.9 计算每个细胞周边的存活细胞数 316
15.10 更新GridCanvas 318
15.11 词汇表 321
15.12 习题 321
第16 章 复用类 . 325
16.1 编写第一版兰顿蚂蚁游戏 326
16.2 重构 328
16.3 抽象类 .330
16.4 UML 图 332
16.5 词汇表 .333
16.6 习题 334
第17 章 高级话题 . 335
17.1 Polygon 对象 .336
17.2 给多边形添加颜色功能 337
17.3 正多边形 .338
17.4 给同一个类编写多个构造器 .340
17.5 试着编写一个能够绘制多边形的程序 .342
17.6 闪烁的多边形 345
17.7 接口 347
17.8 事件监听器 349
17.9 定时器 .353
17.10 词汇表 355
17.11 习题 355
附录A 工具 . 357
附录B Javadoc  371
附录C 图形 . 383
附录D 调试 . 393
作者介绍  409
封面介绍  409

本目录推荐