内容简介
这是一本关于Java和计算机编程的入门教材,书中重点关注基础知识,并强调如何有效地学习。本书共分三部分。部分(第1~7章)是基础知识,首先简要介绍了计算机科学和Java编程,展示了如何管理预定义的类以及如何根据给定的规范定义类,之后讲解了基本数据类型、分支、循环和数组;第二部分(第8~12章)讲解面向对象设计,包括类的设计、继承和多态、接口、异常处理和基本文件输入/输出,以及两个重要的案例研究;第三部分是在线内容,讲解了数据结构与算法,具体包括递归、排序和查找、链表、集合、映射、栈和队列。本书非常适合作为计算机科学家、工程师和其他学科学生的本编程教材。
目录
目 录
Java Concepts: Early Objects (Eighth Edition)
出版者的话
译者序
前言
学习辅助手段介绍
致谢
特色内容
第一部分 基础知识
第1章 引言 2
1.1 计算机程序 2
1.2 计算机剖析 3
计算与社会1.1 计算机无处不在 4
1.3 Java编程语言 5
1.4 熟悉你的编程环境 7
编程技巧1.1 备份副本 10
1.5 分析你的第一个程序 10
常见错误1.1 缺少分号 13
1.6 错误 14
常见错误1.2 单词拼写错误 15
1.7 解决问题:算法设计 15
1.7.1 算法概念 16
1.7.2 解决一个投资问题的算法 16
1.7.3 伪代码 17
1.7.4 从算法到程序 18
操作指南1.1 用伪代码描述算法 19
实用示例1.1 编写一个铺地板瓷砖的算法 21
第2章 使用对象 31
2.1 对象和类 31
2.1.1 使用对象 32
2.1.2 类 32
2.2 变量 33
2.2.1 变量声明 33
2.2.2 类型 35
2.2.3 名 35
2.2.4 注释 36
2.2.5 赋值 37
常见错误2.1 使用未声明或未初始化的变量 39
常见错误2.2 混淆变量声明和赋值语句 39
编程技巧2.1 选择描述性的变量名 39
2.3 调用方法 40
2.3.1 类的公共接口 40
2.3.2 方法参数 40
2.3.3 返回值 42
2.3.4 方法声明 43
编程技巧2.2 通过尝试来学习 44
2.4 构造对象 45
常见错误2.3 试图如调用方法一样调用构造函数 47
2.5 访问器和修改器方法 47
2.6 API文档 48
2.6.1 浏览API文档 49
2.6.2 包 50
编程技巧2.3 不要强记,使用在线帮助 51
2.7 实现一个测试程序 51
专题2.1 在交互环境中测试类 53
实用示例2.1 你活了多少天? 54
实用示例2.2 处理图片 54
2.8 对象引用 54
计算与社会2.1 计算机垄断 57
2.9 图形应用 57
2.9.1 帧窗口 58
2.9.2 在组件上绘制 59
2.9.3 在帧窗口中显示组件 61
2.10 椭圆、线、文本和颜色 62
2.10.1 椭圆和圆 63
2.10.2 线 63
2.10.3 绘制文本 64
2.10.4 颜色 64
第3章 实现类 78
3.1 实例变量和封装 78
3.1.1 实例变量 78
3.1.2 Counter类的方法 80
3.1.3 封装 80
3.2 指定类的公共接口 82
3.2.1 指定方法 82
3.2.2 指定构造函数 83
3.2.3 使用公共接口 85
3.2.4 为公共接口加注释 85
常见错误3.1 将构造函数声明为void 88
编程技巧3.1 javadoc工具 88
3.3 提供类实现 89
3.3.1 提供实例变量 89
3.3.2 提供构造函数 89
3.3.3 提供方法 91
常见错误3.2 忽略参数变量 93
操作指南3.1 实现一个类 94
实用示例3.1 建立一个简单的菜单 97
3.4 单元测试 98
计算与社会3.1 电子投票机 99
3.5 解决问题:跟踪对象 100
3.6 局部变量 102
常见错误3.3 在局部变量中重复实例变量 103
常见错误3.4 提供不必要的实例变量 104
常见错误3.5 忘记在构造函数中初始化对象引用 105
3.7 this引用 105
专题3.1 从一个构造函数调用另一个构造函数 108
3.8 图形类 108
操作指南3.2 绘制图形 112
第4章 基本数据类型 127
4.1 数字 127
4.1.1 数字类型 127
4.1.2 常量 129
专题4.1 大数 134
编程技巧4.1 不要使用魔法数 134
4.2 算术运算 135
4.2.1 算术操作符 135
4.2.2 自增和自减 135
4.2.3 整除和求余 135
4.2.4 幂和平方根 136
4.2.5 浮点数转换为整数 138
常见错误4.1 意外的整除 139
常见错误4.2 小括号不匹配 140
编程技巧4.2 表达式中的空格 140
Java 8说明4.1 避免负余数 140
专题4.2 结合赋值和算术运算 141
专题4.3 实例方法和静态方法 141
计算与社会4.1 奔腾处理器的浮点数bug 141
4.3 输入和输出 143
4.3.1 读取输入 143
4.3.2 格式化输出 144
操作指南4.1 完成计算 147
实用示例4.1 计算金字塔的体积和表面积 150
4.4 解决问题:先手动完成 150
实用示例4.2 计算旅行时间 152
4.5 字符串 152
4.5.1 String类型 152
4.5.2 字符串连接 153
4.5.3 字符串输入 154
4.5.4 转义序列 154
4.5.5 字符串和字符 154
4.5.6 子串 155
编程技巧4.3 阅读异常报告 157
专题4.4 使用对话框提供输入和输出 158
计算与社会4.2 国际字母表和Unicode 158
第5章 判断 174
5.1 if语句 174
编程技巧5.1 大括号布局 177
编程技巧5.2 总是使用大括号 178
常见错误5.1 if条件后有分号 178
编程技巧5.3 制表符 178
专题5.1 条件操作符 179
编程技巧5.4 避免不同分支中重复 179
5.2 比较值 180
5.2.1 关系操作符 180
5.2.2 比较浮点数 181
5.2.3 比较字符串 182
5.2.4 比较对象 183
5.2.5 测试null 184
常见错误5.2 使用==比较字符串 185
操作指南5.1 实现一个if语句 186
实用示例5.1 抽取中间字符 188
计算与社会5.1 丹佛机场的行李处理系统 188
5.3 多个候选条件 189
专题5.2 switch语句 192
5.4 嵌套分支 193
编程技巧5.5 手动跟踪 196
常见错误5.3 空悬else问题 197
专题5.3
前言/序言
前 言Java Concepts: Early Objects (Eighth Edition)这是一本关于Java和计算机编程的入门教材,书中重点关注基础知识,并强调如何有效地学习。本书面向有不同兴趣和能力层次不同的广大学生,非常适合作为计算机科学家、工程师和其他学科学生的第一本编程教材。本书不要求读者有任何编程经验,只需要掌握一定的高中代数知识就可以学习。
本书有以下主要特点。
对象先行,渐进地讲授面向对象知识。
第2章将讲解如何使用标准库中的对象和类。第3章会介绍根据给定规范实现类的基本机制,这样学生就可以在掌握分支、循环和数组的同时使用简单的对象。面向对象设计将从第8章开始介绍。这种渐进的方法可以让学生在研究核心算法有关内容的整个过程中使用对象,而不会养成一些坏习惯,否则以后还得花很大力气才能改掉这些坏习惯。
指导和实用示例可以帮助学生达成学习目标。
初学的程序员通常会问“怎么开始?现在我要做什么?”当然,作为一种十分复杂的活动,编程肯定无法简化成一组菜谱式的指令。不过,逐步指导对于建立自信很有帮助,还有助于为当前任务提供一个大致的轮廓。这种“操作指南”可以帮助学生完成常见的编程任务。我们还在线提供了另外一些实用示例。
明确指出解决问题的策略。
实用、循序渐进的技术讲解可以帮助学生为编程问题设计解决方案并做出评价。书中会在合适的位置介绍解决问题的策略,这些策略可以帮助学生克服障碍,获得成功。具体包括:
算法设计(利用伪代码)跟踪对象先手动处理(手写演算)流程图选择测试用例手动跟踪故事板先解决比较简单的问题调整算法通过管理实体对象发现算法对象数据模式递归地思考估计一个算法的运行时间实践锻造完美。
当然,学习编程的学生还要能够实现不太简单的程序,不过首先他们要有能够成功的信心。本书每一节最后都有大量自查问题。“实践”环节指出了每一节之后可以尝试的练习。另外我们还在线提供了额外的实践机会,包括一些自动评分的编程练习和强调技能的多选题。
形象直观的方法促进并方便读者阅读。
照片以类比的方式形象地解释了计算机概念的内涵和行为。循序渐进的图表详细展示了复杂的程序操作。语法框和示例表以一种紧凑的格式提供了大量典型和特殊的用例。借助这些视觉手段,在集中精力学习文字内容之前就能对大致情况有所了解。
强调基础,同时保证技术准确。
对于刚开始学习编程的人来说,百科全书式的面面俱到并没有太大帮助,不过也不能矫枉过正,将内容缩减为一个过于简化的要点列表对初学者同样没有好处。本书会成块地介绍基础知识,方便读者消化吸收。另外,在读者希望获得更多信息时,我们会提供单独的说明,更深入地介绍一些好的实践做法或语言特性。这里不会人为地过于简化来给人以知识的幻觉。
加强工程实践。
书中关于软件质量和常见错误给出了大量很有用的提示,这些将鼓励读者养成良好的编程习惯。可选的测试活动强调测试驱动开发,鼓励学生系统地测试程序。
提供一个可选的图形活动。
图形是对象的一个非常好的例子。很多学生喜欢编写创建图形或使用图形用户界面的程序。如果需要,可以使用第2章、第3章和第10章最后的材料在课程中加入这些内容。
包含可选的科学和商业练习。
每一章最后都会针对科学和商业领域的问题给出一些高级练习。设计这些练习是为了让学生更多地参与,这些练习体现了编程在应用领域的作用和意义。
本版新增内容针对Java 8全面更新Java 8引入了很多令人兴奋的新特性,本书这一版已经全面更新来利用这些特性。现在接口可以有默认和静态方法,另外由于引入了lambda表达式,所以可以很容易地为只有一个方法的接口提供实例。关于接口的一章和介绍排序的章节也已经更新,以便根据需要利用这些新特性。
另外,如try-with-resources语句等Java 7特性会放在正文中介绍。
交互式学习Codecheck(代码检查)是一个创新的在线服务,学生可以利用这个服务解决编程问题。你可以布置已准备的练习,也可以很容易地增加你自己的练习。有关的更多内容请访问http://codecheck.it。
本书结构本书很自然地分为三大部分,如图1所示。各章的组织与前一版同样灵活;图中还展示了各章之间的依赖关系。
第一部分 基础知识(第1章~第7章)第1章是对计算机科学和Java编程的一个简要介绍。第2章展示如何管理预定义类的对象。第3章中介绍根据给定的规范构建你自己的简单类。第4章~第7章介绍基本数据类型、分支、循环和数组。
第二部分 面向对象设计(第8章~第12章)第8章用系统的方式开始介绍类设计这一主题,还会介绍UML记法的一个非常简单的子集。关于多态和继承的讨论分为两章。第9章介绍继承和多态,第10章介绍接口。异常处理和基本文件输入/输出在第11章介绍。异常层次体系提供了继承的一个很有用的例子。第12章提供了面向对象设计的一个介绍,还包括两个重要的案例研究。
Java程序设计概念:对象先行(原书第8版) 电子书 下载 mobi epub pdf txt