描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111620976
内容简介
本书不仅介绍Java语言的基础语法知识,还通过大量案例研究、编程示例,着重讲授问题求解和编程技术,如程序控制流(分支和循环)、定义类与方法、异常处理等。
目 录
出版者的话译者序前言致谢依赖关系图第1章 计算机与Java引论 11.1 计算机基础 11.1.1 硬件与内存 21.1.2 程序 31.1.3 编程语言、编译器和解释器 41.1.4 Java字节码 51.1.5 类加载器 71.2 浅尝Java 81.2.1 Java语言的历史 81.2.2 应用程序与小应用程序 91.2.3 第一个Java应用程序 91.2.4 编写、编译和运行Java程序 131.3 编程基础 141.3.1 面向对象编程 141.3.2 算法 171.3.3 测试与调试 181.3.4 软件复用 191.4 图形化编程补充读物 201.4.1 一个JavaFX应用程序样例 211.4.2 图形的尺寸和位置 231.4.3 绘制椭圆和圆 241.4.4 绘制弧 25本章小结 27练习 28实践程序 29编程项目 29自测问题答案 30第2章 基本的计算 332.1 变量和表达式 332.1.1 变量 332.1.2 数据类型 352.1.3 Java标识符 372.1.4 赋值语句 382.1.5 简单输入 402.1.6 简单屏幕输出 412.1.7 常量 422.1.8 具名常量 432.1.9 赋值兼容性 442.1.10 类型强制转换 452.1.11 算术运算 482.1.12 括号和优先级规则 502.1.13 特殊赋值操作符 512.1.14 案例研究:售货机找零 522.1.15 递增和递减操作符 562.1.16 更多有关递增和递减操作符的讨论 572.2 String类 572.2.1 字符串常量和变量 582.2.2 字符串连接 582.2.3 字符串方法 592.2.4 字符串处理 622.2.5 转义字符 632.2.6 Unicode字符集 642.3 键盘和屏幕I/O 652.3.1 屏幕输出 652.3.2 键盘输入 672.3.3 其他输入界定符(选修) 722.3.4 使用printf的格式化输出(选修) 732.4 文档和样式 752.4.1 有意义的变量名 752.4.2 注释 752.4.3 缩进 772.4.4 使用具名常量 782.5 图形化编程补充读物 802.5.1 将样式规则应用于JavaFX应用程序 802.5.2 介绍JOptionPane类 812.5.3 将输入作为其他数字类型读取 872.5.4 编程示例:具有窗口化I/O的找零程序 88本章小结 90练习 90实践程序 92编程项目 93自测问题答案 94第3章 流控制—分支 983.1 if-else语句 983.1.1 基本的if-else语句 983.1.2 布尔表达式 1043.1.3 比较字符串 1073.1.4 嵌套的if-else语句 1113.1.5 多重分支的if-else语句 1123.1.6 编程示例:给出字母等第 1143.1.7 案例研究:体重指数 1163.1.8 条件操作符(选修) 1183.1.9 exit方法 1193.2 boolean类型 1203.2.1 布尔变量 1203.2.2 优先级规则 1213.2.3 布尔值的输入和输出 1233.3 switch语句 1243.4 图形化编程补充读物 1303.4.1 指定绘图颜色 1313.4.2 Yes或No问题的对话框 134本章小结 135练习 136实践程序 137编程项目 138自测问题答案 140第4章 流控制—循环 1424.1 Java循环语句 1424.1.1 while语句 1434.1.2 do-while语句 1464.1.3 编程示例:臭虫侵扰 1494.1.4 编程示例:嵌套循环 1544.1.5 for语句 1554.1.6 在for语句中声明变量 1604.1.7 在for语句中使用逗号(选修) 1604.1.8 for-each语句 1624.2 用循环编程 1624.2.1 循环体 1624.2.2 初始化语句 1634.2.3 控制循环迭代次数 1644.2.4 案例研究:使用布尔变量来终止循环 1664.2.5 编程示例:消费热潮 1684.2.6 循环中的break语句和continue语句(选修) 1704.2.7 循环缺陷 1724.2.8 跟踪变量 1744.2.9 断言检查 1754.3 图形化编程补充读物 1774.3.1 编程示例:一个包含多张脸的JavaFX应用程序 1774.3.2 绘制文本 181本章小结 182练习 182实践程序 184编程项目 185自测问题答案 188第5章 定义类和方法 1935.1 类和方法定义 1935.1.1 类文件和单独编译 1955.1.2 编程示例:实现Dog类 1955.1.3 实例变量 1965.1.4 方法 1985.1.5 定义void方法 2005.1.6 定义有返回值的方法 2015.1.7 编程示例:实现Species类的第一次尝试 2055.1.8 关键词this 2085.1.9 局部变量 2095.1.10 块 2115.1.11 基本类型参数 2125.2 信息隐藏和封装 2165.2.1 信息隐藏 2175.2.2 前置条件和后置条件注释 2175.2.3 public和private修饰符 2185.2.4 编程示例:为什么实例变量应该是私有的 2205.2.5 编程示例:矩形类的另一种实现 2215.2.6 访问器方法和修改器方法 2235.2.7 编程示例:Purchase类 2255.2.8 调用方法的方法 2285.2.9 封装 2335.2.10 使用javadoc自动归档 2355.2.11 UML类图 2355.3 对象和引用 2365.3.1 类类型变量 2375.3.2 定义类的equals方法 2425.3.3 编程示例:Species类 2445.3.4 布尔值方法 2465.3.5 案例研究:单元测试 2475.3.6 类类型参数 2495.3.7 编程示例:类类型参数与
前 言
致教师欢迎阅读《Java程序设计与问题求解(原书第8版)》。本书是按照编程和计算机科学的第一门课程设计的,涵盖了编程技术和Java编程语言的基础知识,适合短至半学期,长至一学年的课程。本书不要求读者具有任何编程经验,除了高中代数之外,也不要求读者具有任何其他数学知识。对于已经上过其他编程课的学生,教师也可以用本书教授Java课程,在这种情况下,书中前几章可以布置成课外读物。本版内容更新下面列出了第8版与第7版之间的差异:纠正了错误,并且改善了可读性。Java Applet的内容从纸质版的书中移除了,但是其仍可在线获得。除了JOptionPane,图形化编程补充读物已经全部从Swing改为JavaFX,介绍了JavaFX绘制、布局、事件处理和常用的UI控件。有关Swing的内容仍可在线获得。使用事件处理器的事件驱动编程的示例是在主应用类中作为单独的类的匿名内部类,并且使用了Lambda函数。介绍了时间线和场景构建器。10个新的/修订过的编程项目。使用的Java版本本书所有的代码都用Oracle Java SE 8开发工具包(JDK)进行过测试。任何导入的类都是标准类,并且都在作为Java组成部分的Java类库中,不需要任何其他的类或特殊的类库。灵活的章节顺序如果你是一位教师,那么本书可以适应你的教学,而不是让你适应本书的结构。本书并没有严格地规定你的课程必须覆盖的主题之间的顺序,可以很容易地改变教授的章节顺序。重新安排这些章节所涉及的细节在前言之后的依赖关系图中进行解释,更多的细节在每一章开头部分的“先修条件”中进行描述。提前介绍图形化编程每一章都是以图形化编程补充读物结尾的。这使得你可以选择在课程一开始就教授图形化编程和GUI编程。图形化编程补充读物的各个小节强调了使用JavaFX构建的GUI。在第8章之后,你可以转而教授有关使用Swing进行GUI编程的补充章节第13~15章,现在这几章内容都在本书的网站上。另一种方案是,你可以继续教授到第10章,中间混杂着图形化编程和更传统的编程。对于教师来说,如果倾向于推迟有关图形化编程的教学,那么可以推迟或跳过有关图形化编程补充读物的小节。涵盖问题求解和编程技术本书的设计初衷是教会学生基本的问题求解和编程技术,而不仅仅是一本有关Java语法的书。书中包含了大量的案例研究、编程示例和编程窍门。另外,许多小节还解释了问题求解和编程技术的重要性,例如循环设计技术、调试技术、样式技术、抽象数据类型和基础的面向对象编程技术,包括UML、事件驱动编程和使用类型参数的泛型编程。提前介绍类任何教授Java的课程都必须尽早讲解类,因为Java中所有事物都是类。Java程序就是类,字符串的数据类型也是类,甚至判等操作符(==)的行为也取决于它比较的是类的对象还是简单的数据项。类无法回避,要是能回避也肯定是用了那些长得离谱且异常复杂的“魔力方案”。本书对类的介绍相当早。在第1章和第2章就已经点出了类的使用,第5章讨论了如何定义类。关于类的所有基础信息(包括继承在内)在第8章的末尾进行了阐述(尽管你可以忽略第7章)。但是,有些关于类的主题(包括继承在内)可以推迟到课程后期再开始介绍。尽管本书尽早地介绍了类,但是也没有忽略传统的编程技术,例如自顶向下设计和循环设计技术。这些较老的主题可能显得不再那么光彩夺目,但是它们是所有初学者都需要了解的知识。泛型编程在讨论第12章的列表时,会向学生介绍类型参数。通过讲解ArrayList类的示例来介绍如何使用具有类型参数的类。然后,会向学生展示如何定义他们自己的包含类型参数的类。语言细节和样例代码本书教授的是编程技术,而不只是Java语言。但是,无论是学生还是教师,都不会只满足于一门不教授编程语言的介绍性编程课程。在为学生详细阐述Java语言的细节后,才能使其聚焦在更重大的主题上。为此,本书给出了对Java语言特性的完整解释,以及许多样例代码。程序是完整呈现的,包含了样例输入和输出。在许多情况下,除了书中完整的示例,在互联网上还可以获得其他完整的示例。自测问题自测问题贯穿于本书的每一章,这些问题难度不一,有些题的答案只需要一个词,而有些题却需要读者编写不那么容易完成的完整程序。在每一章的末尾都给出了所有自测问题的完整答案,包括那些需要完整程序的问题。练习和编程项目在每一章的末尾呈现的是全新的练习。因为只有教师才有权限获得答案,所以这些练习非常适合留作作业,有些甚至可以扩展成编程项目。但是,每一章也包含其他的编程项目,其中有些是这一版中新添加的。支持材料下面的材料仅供教师使用,可以从网站www.personhighered.com/src获得:大部分练习和编程项目的解决方案。PowerPoint幻灯片。实验手册与相关的代码。联系我们我们任何时刻都欢迎你提出评论、建议、问题和纠错。请发送电子邮件到[email protected]。致学生本书旨在教授Java编程语言,更重要的是,教授基本的编程技术。本书不要求你之前具有任何编程经验,除了高中代数之外,也不要求你具有任何其他数学知识。但是,为了充分汲取本书的知识,你应该在计算机上安装好Java,以便实践书中给出的示例和技术。最好是安装最新版本的Java。如果你有编程经验你不需要具有任何编程经验就可以阅读本书,因为本书是为初学者设计的。如果你具有某种其他编程语言的编程经验,那么千万不要以为Java与你之前使用的编程语言一样。所有语言都不相同,而且即使是微小的区别,也足以给你带来问题。因此,请浏览本书的前四章,至少要阅读“回顾”部分。等到你阅读第5章时,最好是完整地阅读这一章。如果你之前用C或C++编过程,那么迁移到Java会让你痛并快乐着。乍一看,Java可能与C或C++几乎完全相同,但是,Java与这些语言差异巨大,你需要意识到这些差异的存在。附录F对Java和C++进行了比较,这有助于你看清楚这些差异到底是什么。获得Java的副本附录A提供了下载Java编译器和编程环境的网站链接。对于初学者,我们推荐使用Oracle的Java JDK作为你的Java编译器和相关的软件,并使用TextPad或DrJava作为编写Java代码的简单编辑器环境。当下载Java JDK时,要确保获取最新的版本。辅助学习工具每一章都包含了下列内容来帮助你学习相关的内容:开篇概览,包括本章目标和先修条件,以及一两段对所学内容的简介。“回顾”部分简洁地总结了Java语法的主要方面和其他重要的概念。“常见问题”部分回答了其他学生问过的问题。“牢记”部分强调了你应该牢记的重要思想。“编程窍门”部分给出了能够让你提升编程技能的方法。“疑难杂症”部分指出了你在编程时可能会犯但是应该避免的错误。“自测问题”部分测试你各个方面的知识,并在每一章章末给出了答案。实践所学知识的最佳方式之一,就是在查看答案之前先完成这些自测问题。每一章末尾都会对重要概念进行总结。本书也是一本参考书除了将本书用作教科书外,你还可以将本书用作参考书。当需要检查你已经忘记了的知识点,或者你听别人提到了但是自己还没学过的知识点时,只需查看本书的索引。许多索引项都给出了“回顾”部分的页码,翻到那一页,它包含了一个简短的强调项,你所关注的话题的要点将一览无余。通过这种方式,不但可以查看Java语言的细节,还可以查看编程技术的细节。每一章的“回顾”部分都提供了对这一章要点的扼要总结。同时,在每一章的末尾还包含对重要概念的总结。你可以用这些内容来复习每一章,或者查看Java语言的细节。
评论
还没有评论。