本书侧重于面向对象设计,通过浅显易懂的语言和代码,很好地平衡了完整实例和解释性讨论,并围绕着Java 语言的特性全面透彻地介绍诸多编程技术。书中全面介绍了Java 语言已经实现的封装、继承和多态性技术,并在介绍Swing GUI 的时候提及了事件驱动的编程,在介绍UML 和模式的同时进一步介绍了OOP。本书每节后都设计了相应的练习题,每章后都有针对本章内容的编程项目。
本书不仅适合初学者使用,还可以作为使用Java 的后续计算机科学课程的参考书。
OOP入门必由之路 常青藤名校内定用书 以干货著称的经久名著 为解惑Java疑难而定制
译者序
20 世纪90 年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun 公司为了抢占市场先机,在1991 年成立了一个被称为Green 的项目小组,由James Gosling 等工程师开发出Java语言的雏形,其最初被命名为Oak,于1995 年5 月以Java 这个名称正式发布。
作为一种计算机编程语言,Java 拥有跨平台、面向对象、泛型编程的特性,其广泛应用于企业级Web 应用开发和移动应用开发中。伴随着互联网的迅猛发展,Java 逐渐成为重要的网络编程语言。
本书作者通过浅显易懂的语言和大量的示例代码,力求让读者理解Java 语言。本书的每一章都有作者特意编写的“自测题”,让读者可以自己检验是否真的理解了这些内容。并且在每一章的最后都提供了本章小结、自测题答案和编程项目练习,供读者巩固本章所学的相关内容。
本书共分为20 章,作者在前3 章介绍了Java 语言的基本语法;并从第4 章开始进入“面向对象编程”部分。作者在第4 章和第5 章介绍了类的相关知识;在第7 章和第8 章介绍了Java 面向对象的三大特征,即继承、封装和多态;在第13 章概述了接口和内部类的相关内容。此外,作者还在书中介绍了数组、链表等数据结构和递归算法,分别位于第6 章、第11 章、第14 章、第15 章和第16 章;然后,作者在第17 章和第18 章介绍了如何使用JavaFX 创建GUI。而且,作者还在本书中介绍了I/O、异常处理的相关内容,分别位于第9 章和第10 章。作者还在第12 章介绍了UML 和模式的相关内容。最后,为了适应互联网的迅猛发展和多核化的趋势,作者在第19 章和第20 章概述了相关内容。
虽然我已经尽了最大努力,但翻译过程中难免有些未准确理解的句子,希望广大读者批评指正。
除师蓉外,李青翠、樊永刚、樊旺斌、王桂英、樊瑞春、武昭江、李静、翟晓锦、师超、成金娥、师守伟、石璐璐、赵鹏飞、武建萍、武育芝、郝俊丽、张烈香、韩丽飞、樊卫斌、武继萍、周俊燕、沈元婷、王莹莹、韩师乾也共同参与了本书的翻译工作,感谢他们对本书做出的贡献。
最后,感谢电子工业出版社对我的信任和帮助,感谢家人对我的支持。
师蓉
2017 年11 月
前言
本书旨在成为Java 编程方面的一本教科书和参考书。尽管本书包含了很多编程技术,但它是围绕着Java 语言的特征而非围绕着某门特定的编程技术课程来组织内容的。我在编写本书时,脑海中考虑的主要读者对象是没有太多Java 编程经验的本科生。因此,本书可以作为你学习第一门编程课程或者使用Java 后续计算机科学课程时的Java 教材或参考书。本书的目标是适用于大多数用户。前几章适合初学者,同时这些章节方框中的内容可以让较有经验的程序员快速了解基本的Java 语法。后续章节仍然以通俗易懂为宗旨,但它们适合于那些已经进展到更高级主题的学生。
本版相较于前面版本的变化
第6 版所表现的编程原理与第5 版是相同的。若你是教师,那么你在教授同一门课程时可以用与以前相同的顺序介绍相同的主题,且无须对这些主题所涉及的内容或章节加以改变。相较于前一版本,本版的变化几乎全部体现为追加性材料,如下所示:
增加了对如何用 Java 8的 lambda表达式进行函数式编程的介绍。
增加了一些循环、网络和异常处理方面的内容和例子。
增加了对如何使用 JavaFX创建 GUI 的介绍。
增加了 15 个新的编程项目。
没有非标准软件
本书中只使用标准Java 类库中的类,而未使用任何非标准软件。
Java 范围
本书中的所有程序都用Java 8 测试过。目前,Oracle 未对Java 的未来版本提出任何会影响本书中方法的变更。
面向对象编程
本书详尽地介绍了以Java 语言实现的封装、继承和多态。在关于Swing GUI 的章节中,介绍了事件驱动的编程并提供了大量的练习。
主题排序的灵活性
本书允许教师重新安排书中所论述的主题。对于旨在作为参考书的书籍来说,这一点是很重要的。这一点也符合我写书的基本原则:使书籍能适应教师的风格而不是让教师受制于作者在主题编排上的个人偏好。为此,本书每一章开始时都有一个名为“前导知识”的部分,此部分说明了在学习相应的章节时需要事先掌握的有关内容。接下来“带星号的部分”进一步增加了本书在使用上的灵活性。
带星号的部分
每一章中都有若干带星号(★)的部分,这些部分是可选的。对于初学者来说它们所包含的内容难度较大,可以跳过不学或者推迟到以后再学,而这样做并不会破坏本书学习的连续性。我们希望读者最后还是会返回来把这些内容学完。对于高年级的学生来说,不应将带星号的部分视为可选的内容。
通俗易懂
对于一本书来说,不仅需要以恰当的次序论述恰当的主题并让教师或其他专家在阅读时觉得其内容清晰无误,而且需要通俗易懂,让事先不懂其内容的人也可以读懂学会。和我编著的其他那些已被证实很受欢迎的教科书一样,本书对学生来说也是容易使用和通俗易懂的。
总结框
在本书中,对每个重要知识点都做了概括,这些概括均用方框框了起来。它们分布和贯穿于每一章。作为对相关内容的总结,它们可用作快速参考源,并为想大体上了解Java 特征的读者提供了快速学习Java 语法的途径。
自测题
每一章都包含了很多自测题以帮助学生掌握该章的关键知识点。在每一章的末尾给出了该章所有自测题的参考答案。
其他特征
每一章都将给出陷阱、编程小贴士以及带有示例运行结果的完整程序示例。每一章均以“本章小结”和一个适合作为编程项目的项目集结束。
如何访问为教师和学生提供的资源
可利用“我的编程实验室”(MyProgrammingLabTM)进行在线练习和测评。“我的编程实验室”可帮助学生充分掌握编程的逻辑、语义和语法。对于尚未很好掌握常见高级编程语言基本概念和范式的初学者来说,可以通过“我的编程实验室”所提供的实战练习和即时的、个性化的反馈,提高自己的编程能力。
作为自学及课后作业工具,“我的编程实验室”包含围绕着本书结构组织起来的数百个小型练习题。对于学生来说,系统会自动检测他们所提交的代码在逻辑和语法上的错误,并给出有针对性的提示,使他们能够找出什么地方有错误以及错误原因。对于教师来说,系统则提供了一个全面的成绩簿,利用它可以跟踪正确的和不正确的答案以及存储学生输入的代码以便评审。
若想全面了解“我的编程实验室”,以便查看到来自老师和学生的反馈或者在你的课程中开始使用“我的编程实验室”,请访问http://www.pearsonmylabandmastering.com/northamerica/myprogramminglab/(需要注册)。
支持材料
本书中的源代码
获取网址是www.pearsonhighered.com/cs-resources/。
其他资源
这仅供www. pearsonhighered.com/irc 网站上具备资格的教师获得。如果有国内教师采用本书作为教材,他们需要自行联系培生中国获得教辅资源(本书末尾附有联系表格)。
致谢
本书的问世得益于很多人给予的宝贵帮助和支持:我以前的编辑Addison-Wesley出版公司的Susan Hartman,是最初提议我写作本书的人,并与我一起完成了本书的最初几版;我现在的编辑Matt Goldstein 为本书后续版本的审校、修订及宣传提供了支持并提出了若干好主意;Kelsey Loanes、Rose Kernan、Demetrius Hall 和Pearson 公司其他一些优秀的人士也提供了宝贵的帮助和鼓励。
许多人员审校了本书,为本书指出了需要修改的错误并提供了建议。他们的贡献是非常有帮助的,我很感谢他们。
特别感谢阿拉斯加安克雷奇大学的肯瑞克? 莫克(Kenrick Mock),该版本的修订工作是由他来做的。他又一次将这么艰巨的工作完成得让我、编辑以及他本人感到满意。
我非常感谢他如此出色的工作。
沃尔特? 萨维奇(Walter Savitch)
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
? 下载资源:本书如提供示例代码及资源文件,均可在 下载资源 处下载。
? 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
? 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一
同学习交流。
页面入口:http://www.broadview.com.cn/32866
电工社博文视点出的《疯狂J a v a讲义第4版》和翻译的《Absolute J a v a中文版》比砖头还厚,好几斤重,携带阅读极不方便,就不能分上下册出版吗?这样的书还是要考虑出电子版顺应时代潮流。