图书前言

前言

面向对象程序设计已经成为当前桌面、服务器、移动应用开发的主流技术。以面向对象思想为核心的Java语言成为最受欢迎的语言之一,Java程序已经广泛运行在各类平台和设备上。由于应用“面向对象”的思维模式解决问题是对人们在工作、生活中解决问题的一个自然的抽象,所以通过面向对象程序设计让计算机实现问题求解也就变得较为容易,尤其在复杂的应用场景中,面向对象程序设计降低了开发的难度,提高了程序的可理解性和可维护性。

通过本书的学习,读者可以逐渐领会面向对象程序设计的基本思维模式,能够运用Java语言编写面向对象的程序解决具体问题。本书试图满足如下目标。

(1) 强调面向对象思维方式的重要性。引导学生对现实生活中的对象及其协作来解决问题的场景进行抽象,理解类与对象间的关系,理解如何通过对象间的消息实现问题求解。

(2) 强调提高问题求解能力。语言仅仅是表达思想的工具,学习语言的目的是有效地表达如何实现问题求解。引导学生学会抽象、封装,引导学生理解问题求解的时间和空间需求。

(3) 强调程序设计风格。程序源代码不仅仅被计算机阅读,而且也被人阅读。当完成一部分源代码后,评审人员会阅读;当程序发布后发现了缺陷,代码维护人员也会阅读代码定位问题。引导学生建立代码风格意识,写出“赏心悦目”的源代码。

在过去的20多年里,笔者一直从事Java语言的应用开发、教学和研究工作,其中包含5年的Java语言程序设计的双语教学。也从事后续课程“编译原理”的教学。通过本书,试图反映在教学中遇到的共性问题,比如空指针异常、文件路径、把语句写在类体中而不是方法体中以及在研究中发现的问题,比如Java SE API的使用频率和用法模式,以增强本书的实用性。

Java SE (Java Platform, Standard Edition)用以开发和部署桌面或服务器应用程序。从Java SE 5到Java SE 21,出现了很多新的语言特征,如switch语句的标签规则、文本块、局部变量类型推理、trywithresources语句、Lambda表达式等。本书试图反映这些新特征。书中所有源代码均在Oracle OpenJDK 21下编译通过并使用Checkstyle完成程序设计风格审计。

通过清华大学出版社网站可免费获取教学大纲、PPT和样例源码。本书提供了在线题库和在线测验系统,读者扫描封底的作业二维码后可激活章节测验权限,扫描书中的二维码即可实现在线做题。教师可登录网站(app.qingline.net)领取本书配套的习题和作业系统,系统提供了组班、作业布置、在线编程、自动批阅、学情分析导出等功能。

感谢教育部“编译课程虚拟教研室”和河北师范大学对我教学研究的支持,以及我所教授的计算机科学与技术专业本科学生提出的有价值的反馈和建议。学生在课堂上和上机实验过程中提出的问题都对本书写作与习题设计产生了影响。感谢Java程序设计网络资源的所有贡献者。从这些贡献者的图文以及视频资料笔者也受益很多。

河北师范大学计算机与网络空间安全学院解建军、孙慧和吴丽红是“Java面向对象程序设计”课程组成员,分别参与了部分章节的修订。董东负责统稿和全面修订。

董东

2024年6月于河北师范大学