图书前言

第二版前言

本书第一版自2001年出版以来已10次印刷,颇受广大读者的欢迎,不少高校将其作为“面向对象程序设计”这门课的教材。第一版的内容主要取材于编者多年的专业积累和实践总结,经过5年多的时间,这一学科又有了不少新的发展,为了跟踪学科的发展方向,更好地为广大读者服务,编者结合多年的教学实践和软件开发经验对原书进行了认真系统的修订。

这次修订的指导思想是,保持原书系统性较强、实用性为主的原则,以更丰富的实例来做原理性的论述,做到理论与实践相结合。为了帮助读者较快地掌握好面向对象这门技术,编者对不易理解的原理采用了很多生活中通俗易懂的例子逐步讲解。

此次修订对大部分章节都进行了修改,用统一建模语言(UML)的概念与符号重新改写了讲述面向对象方法学的第2章及其他章节中的有关内容,第4章和第5章从知识点到易懂的小例子都进行了系统的修改,并且新增加了第12章和第13章。第12章从应用的角度讲述有关异常的内容,为读者将来开发更加安全实用的应用程序起到参考作用。第13章通过一个更加实用的例子,全面详细地讲述如何用面向对象的思想方法分析、设计、实现应用系统。另外,为了便于教学,此次修改对各章完整的程序进行了汇总,并在书中增加了一定数量的习题,供读者练习。

本书第1~3、6~11章由张海藩编写,第4、5、12~15章由牟永敏编写。全书最后由张海藩统一修改定稿。

张清对第二版的编写和修改提出了有益的建议,李贝在第13章的编写中提出了宝贵意见,梅锐、曹硕等同学对书中的例子和习题进行了多次测试,谨在此向他们表示感谢。

由于编者的水平有限,难免会有不足之处,我们诚恳期待读者的批评指正和建议,供以后再版时参考,使本书日臻完善。

编  者

2007年6月

第一版前言

长期以来,人们一直希望能够以一种自然而且方便的方式进行程序设计,软件危机出现以后这种愿望更加迫切。目前看来,面向对象的程序设计技术比较接近人们追求的目标:既有静态属性又有动态行为的对象与客观世界的实体比较相像,面向对象的程序能够比较自然地模拟客观世界,从而可以使得解空间与问题空间在结构上尽可能一致;用面向对象方法学来分析、设计和实现软件系统的过程与人们认识客观世界、解决实际问题的过程比较一致;面向对象的程序具有稳定、易理解、易修改和可重用等优点,从而可以明显提高软件开发与维护的效率,降低软件的总成本。

因此,近年来面向对象的技术越来越受到人们的重视,对它的应用和研究遍及计算机软件和硬件的各个领域,国内高校普遍开设了“面向对象程序设计”之类的课程。编者多年来一直从事软件工程和面向对象程序设计这两门相关课程的教学工作,并且用面向对象方法开发了一些软件系统。本书总结了编者教学和科研的经验体会,在授课讲稿的基础上经过精心修改、润色并补充了大量新材料而写成。

本书在编写时注重系统性和科学性,特别强调实用性。第一章讲述程序设计的基础知识,着重介绍了传统的面向过程程序设计的基本思想和原理,以及近年来逐渐流行起来的面向对象程序设计的基本思想和主要优点。第二章讲述面向对象的理论,包括基本概念,建立和描述对象模型的方法,面向对象的分析、设计和实现的方法等内容。这一章讲述的面向对象理论并不依赖于具体的程序语言和开发工具,在进行面向对象程序设计实践时,这些理论具有普遍的指导意义。但是,为了能真正用面向对象方法解决实际问题,必须使用一种具体的程序语言。从第三章起的九章中,讲述使用C++语言进行面向对象程序设计的方法。与多数讲述C++语言的书籍不同,第三章不是从C++语言的具体语法讲起,而是讲述用面向对象方法解决一个实际问题的全过程,包括需求陈述,对该问题进行面向对象分析和设计的过程,以及解决该问题的完整的C++程序。从而引导读者把理论与实践紧密地结合起来,学习运用面向对象的思维方式解决实际问题的方法,并使读者在刚刚接触C++语言时就对C++程序的全貌有基本了解。第四章至第十一章,从C++语言如何支持和实现面向对象理论的角度出发,分别讲述数据成员、成员函数、封装性、继承性、重载、多态性、I/O流和模板等内容,从而使读者不仅初步掌握用C++语言实现面向对象理论的方法,而且加深和拓宽了对C++语言及程序的理解。

第十二章和第十三章分别介绍了基于Windows的面向对象语言Visual C++(6.0版)和Java,为读者在最常用的开发环境中用面向对象方法进行实用程序设计奠定了基础。特别是第十二章再次通过一个实例,系统地讲述了用面向对象方法解决实际问题的全过程,强调了利用MFC类库进行可重用的程序设计的必要性,对读者学习面向对象程序设计的新思维和新方法是很有帮助的。

本书的目的不是单纯地讲述某些面向对象的程序设计语言,而是把这些语言作为运用面向对象理论解决实际问题的工具,力图帮助读者站在软件工程的高度,树立起面向对象程序设计的新思维,初步掌握运用面向对象程序设计技术解决实际问题的方法和步骤。

本书第一、二、三、六、七、八、九、十、十一章由张海藩编写,第十二章由张海藩和牟永敏共同编写,第四、五、十三章由牟永敏编写。全书最后由张海藩统一修改定稿。

杨秀梅曾对本书编写工作提出过一些有益的建议,张劲松和张展新编写了第十二章l2.5节中讲述的程序,刘淋、周弘、丰莎莎、张雯、张杰、金龙哲、王春杰、徐乃忠、龚虹杰、于剑、张建、侯恭羽等人完成了本书一些具体工作,谨在此向他们表示感谢。

本书第三章至第十一章的示例程序已经用Borland C++ 3.0调试通过,第十二章的示例程序用Visual C++ 6.0调试通过,第十三章的示例程序用SUN JDK 1.2调试通过。

本书中如有不当之处,欢迎广大读者批评指正。

编  者   

2001年2月