像计算机科学家一样思考Java(第二版)
Allen B. Downey, Chris Mayfield
李宝珅 译
出版时间:2021年08月
页数:424
本书是注重实践的计算机科学与程序设计教程,为许多大学与中学所采用。本书内容简明清晰、通俗易懂,而且特别重视用平实的语言来解释专业的术语,尤其适合没有经验或经验较少的人阅读。这本书从最基本的编程概念讲起,逐渐谈到高级的面向对象编程技巧。
本书作者Allen B. Downey与Chris Mayfield在第一版的基础上做了大幅更新与扩充,他们会告诉你怎样把编程用作手段,来解决各种有趣的问题。每章内容都能安排在大学课程的某一周里面,而且每章末尾都有习题,可以促使你实践本章所学的内容。另外,AP Computer Science A(AP计算机科学A)考试与Java SE Programmer I认证所涉及的每个话题,几乎都会在这本书里谈到。
● 每次揭示一个概念:通过带有范例的一系列小步骤,来逐渐解决某个复杂的问题。
● 告诉你如何描述问题、如何构思解决方案,如何开发、测试并调试程序。
● 学习输入与输出、决策与循环、类与方法、字符串与数组,以及递归与多态。
● 告诉你怎样选出最合适的程序开发方法,以及如何运用重要的调试技能来排除程序故障。
  1. 前言
  2. 第1章 计算机编程
  3. 1.1 什么是计算机?
  4. 1.2 什么是编程?
  5. 1.3 Hello World程序
  6. 1.4 编译Java程序
  7. 1.5 显示两条信息
  8. 1.6 调整源代码的格式
  9. 1.7 使用转义符
  10. 1.8 什么是计算机科学?
  11. 1.9 调试程序
  12. 1.10 词汇表
  13. 1.11 习题
  14. 第2章 变量与运算符
  15. 2.1 声明变量
  16. 2.2 给变量赋值
  17. 2.3 内存示意图
  18. 2.4 打印变量(显示变量的值)
  19. 2.5 算数运算符
  20. 2.6 浮点数
  21. 2.7 舍入误差
  22. 2.8 字符串运算
  23. 2.9 编译器的错误消息
  24. 2.10 其他类型的错误
  25. 2.11 词汇表
  26. 2.12 习题
  27. 第3章 输入与输出
  28. 3.1 System类
  29. 3.2 Scanner类
  30. 3.3 编程语言的要素
  31. 3.4 字面量与常量
  32. 3.5 调整输出格式
  33. 3.6 解读错误消息
  34. 3.7 手动类型转换运算符
  35. 3.8 求余运算符
  36. 3.9 综合运用所学知识编写范例程序
  37. 3.10 Scanner的bug
  38. 3.11 词汇表
  39. 3.12 习题
  40. 第4章 方法与测试
  41. 4.1 定义新方法
  42. 4.2 执行流
  43. 4.3 形式参数与实际参数
  44. 4.4 多参数的方法
  45. 4.5 栈示意图
  46. 4.6 Math类的方法
  47. 4.7 方法之间的组合
  48. 4.8 返回值
  49. 4.9 渐进式开发(增量开发)
  50. 4.10 词汇表
  51. 4.11 习题
  52. 第5章 条件与逻辑
  53. 5.1 关系运算符
  54. 5.2 if-else语句
  55. 5.3 串接与嵌套
  56. 5.4 switch语句
  57. 5.5 逻辑运算符
  58. 5.6 德摩根定律
  59. 5.7 boolean变量
  60. 5.8 boolean方法
  61. 5.9 验证输入值
  62. 5.10 范例程序
  63. 5.11 词汇表
  64. 5.12 习题
  65. 第6章 循环与字符串
  66. 6.1 while语句
  67. 6.2 递增与递减
  68. 6.3 for语句
  69. 6.4 嵌套循环
  70. 6.5 字符
  71. 6.6 怎样在for与while循环之间选择
  72. 6.7 迭代字符串
  73. 6.8 indexOf方法
  74. 6.9 子字符串
  75. 6.10 对比字符串的内容
  76. 6.11 调整字符串的格式
  77. 6.12 词汇表
  78. 6.13 习题
  79. 第7章 数组与引用
  80. 7.1 创建数组
  81. 7.2 给元素赋值
  82. 7.3 显示数组的内容
  83. 7.4 复制数组
  84. 7.5 遍历数组
  85. 7.6 生成随机数
  86. 7.7 收集绘制直方图所需的统计数据
  87. 7.8 增强版的for循环
  88. 7.9 统计字符出现的次数
  89. 7.10 词汇表
  90. 7.11 习题
  91. 第8章 递归方法
  92. 8.1 不带返回值的递归方法
  93. 8.2 用栈图描述递归
  94. 8.3 带有返回值的递归方法
  95. 8.4 信任那些应该能够成立的方法
  96. 8.5 用递归实现正向计数
  97. 8.6 二进制计数系统
  98. 8.7 通过递归把十进制数表示成二进制数
  99. 8.8 CodingBat网站上面的编程问题
  100. 8.9 词汇表
  101. 8.10 习题
  102. 第9章 不可变的对象
  103. 9.1 原始数据与对象之间的区别
  104. 9.2 null关键字
  105. 9.3 字符串是不可变的
  106. 9.4 与原始类型相对应的包装类
  107. 9.5 命令行参数
  108. 9.6 验证参数
  109. 9.7 用BigInteger做运算
  110. 9.8 增量设计(渐进式的设计)
  111. 9.9 让程序变得更加通用
  112. 9.10 词汇表
  113. 9.11 习题
  114. 第10章 可变的对象
  115. 10.1 Point对象
  116. 10.2 把对象用作参数
  117. 10.3 把对象用作返回值
  118. 10.4 Rectangle是可变的
  119. 10.5 再谈别名
  120. 10.6 Java库的源代码
  121. 10.7 类图
  122. 10.8 再谈作用域
  123. 10.9 垃圾收集(垃圾回收)
  124. 10.10 可变对象与不可变对象的区别
  125. 10.11 StringBuilder对象
  126. 10.12 词汇表
  127. 10.13 习题
  128. 第11章 类的设计
  129. 11.1 Time类
  130. 11.2 构造器
  131. 11.3 值构造器
  132. 11.4 Getter与Setter
  133. 11.5 显示对象
  134. 11.6 toString方法
  135. 11.7 equals方法
  136. 11.8 将两个Time相加
  137. 11.9 词汇表
  138. 11.10 习题
  139. 第12章 对象数组
  140. 12.1 Card对象
  141. 12.2 给Card类型定义toString方法
  142. 12.3 类变量
  143. 12.4 compareTo方法
  144. 12.5 Card对象应该是不可变的
  145. 12.6 由Card构成的数组
  146. 12.7 顺序搜索
  147. 12.8 二分搜索
  148. 12.9 追踪代码的执行情况
  149. 12.10 词汇表
  150. 12.11 习题
  151. 第13章 把数组封装成对象
  152. 13.1 定义新类来封装一叠牌
  153. 13.2 洗牌
  154. 13.3 选择排序法
  155. 13.4 归并排序法
  156. 13.5 如何表示一叠牌之中的某一部分
  157. 13.6 把两小叠牌合并成一大叠
  158. 13.7 添加递归逻辑
  159. 13.8 静态语境
  160. 13.9 如何表示数量可变的一叠牌
  161. 13.10 推进War游戏
  162. 13.11 词汇表
  163. 13.12 习题
  164. 第14章 扩展已有的类
  165. 14.1 CardCollection类
  166. 14.2 继承
  167. 14.3 发牌
  168. 14.4 Player类
  169. 14.5 Eights类
  170. 14.6 类之间的关系
  171. 14.7 词汇表
  172. 14.8 习题
  173. 第15章 由数组所构成的数组
  174. 15.1 康威生命游戏
  175. 15.2 Cell类
  176. 15.3 二维数组
  177. 15.4 GridCanvas类
  178. 15.5 GridCanvas类中的其他方法
  179. 15.6 启动游戏
  180. 15.7 实现游戏的主循环
  181. 15.8 处理异常
  182. 15.9 计算每个细胞周边的存活细胞数
  183. 15.10 更新GridCanvas
  184. 15.11 词汇表
  185. 15.12 习题
  186. 第16章 复用类
  187. 16.1 编写第一版兰顿蚂蚁游戏
  188. 16.2 重构
  189. 16.3 抽象类
  190. 16.4 UML图
  191. 16.5 词汇表
  192. 16.6 习题
  193. 第17章 高级话题
  194. 17.1 Polygon对象
  195. 17.2 给多边形添加颜色功能
  196. 17.3 正多边形
  197. 17.4 给同一个类编写多个构造器
  198. 17.5 试着编写一个能够绘制多边形的程序
  199. 17.6 闪烁的多边形
  200. 17.7 接口
  201. 17.8 事件监听器
  202. 17.9 定时器
  203. 17.10 词汇表
  204. 17.11 习题
  205. 附录A 工具
  206. 附录B Javadoc
  207. 附录C 图形
  208. 附录D 调试
书名:像计算机科学家一样思考Java(第二版)
译者:李宝珅 译
国内出版社:中国电力出版社
出版时间:2021年08月
页数:424
书号:978-7-5198-5672-4
原版书书名:Think Java, Second Edition
原版书出版商:O'Reilly Media
Allen B. Downey
 
Allen B. Downey是奥林工程学院的计算机科学教授,曾经在韦尔斯利学院、科尔比学院和伯克利大学执教。他拥有伯克利大学计算机科学博士学位及麻省理工学院硕士和学士学位。他基于自己教授计算机程序设计课程的经验,开创了“像计算机科学家一样思考”(how to think like a computer scientist)的教学理念和方法,并藉此编写了多本编程语言书籍。他编写的其他书籍有:《Think Java》、《Think Python》、《Think Stats》和《Think Bayes》。

Allen B. Downey是美国欧林工程学院的计算机科学教授。他曾在韦尔斯利学院、科尔比学院和加州大学伯克利分校任教。他获得了加州大学伯克利分校的计算机科学博士学位以及麻省理工学院的硕士和学士学位。
 
 
Chris Mayfield
 
Chris Mayfield,詹姆斯麦迪逊大学计算机助理教授,致力于计算机教育和职业发展的研究。拥有普渡大学计算机博士学位以及犹他大学计算机和德语学士学位。
 
 
购买选项
定价:128.00元
书号:978-7-5198-5672-4
出版社:中国电力出版社