《Java面向对象程序设计——图形化方法》译序

还记得几年前刚刚走出校园时候的一次面试经历。负责面世的技术主管出了一道Java编程题,我很容易就完成了。在和他讨论的时候,他又提出一个问题:“面向对象的3个主要特征是什么”?我就毫不犹豫地就说出了答案:“封装、继承和多态”。接下来,他又问道:“什么是封装、继承和多态呢”?这时候我急得满头大汗,就是答不上来,最终仓皇败下阵来,错失一次良机。

其实,今天很多大学生在学习OO编程的时候(不管是Java还是C++),几乎都面临着和我当年相同的窘境:也许能够编写程序解决一定的问题,但是对“封装、继承和多态”等完整的OO思想知之甚少,更谈不上有什么理解了。这样的窘境,和OO编程的教学方式有着密不可分的关系。我们的学习总是过多关注编程技术细节,而忽略OOP的思想精髓;或者说,总是先学编程技术,后学OOP的思想精髓,造成编程实践和思想内涵的严重脱节。不是这样么,现在市面上很多Java编程图书,包括很多教材,仍然是保持这种传统的学习过程。

Java面向对象程序设计——图形化方法》一书“先教完整的面向对象思想”的方法为我们学习面向对象编程带来了一些新颖的启发。本书的作者在大学从事多年教学实践,在美国Brown大学、Rhode Island学院等大学进行了多年的“先教完整的面向对象思想”的试验,取得了较好的效果和很大的成功。难能可贵的是,在“先教完整的面向对象思想”的过程中,作者并不是干巴巴地讲理论,而是通过生动的例子来说明封装、继承和多态。例如通过药囊、房间的电路系统的例子来说明封装,通过动物分类的例子来说明继承,通过超级英雄和图书馆的例子来说明多态。在每章介绍完这些基本概念之后,就在“方法”部分介绍Java中相关OOP概念的实现方法,随后,趁热打铁,在“学以致用”部分中通过精心设计、生动活泼的图形化程序实例,帮助读者通过实践进一步加深对这些概念的理解,起到先介绍、后理解、再巩固的作用。

“先教完整的面向对象思想”是本书的精华所在,然而却不是本书唯一的精华。正如本书的名字所示,“图形化方法”是这本教材的另一个显著特点。如果说“先教完整的面向对象思想”堪称本书的首创,“图形化方法”只不过是顺应潮流。为什么这么说呢,因为市面上已经不乏通过“图形化方法”来讲授OOP的图书,其中也有一些教材这么做。在OO程序员的眼中,图形也是对象。在作者的精心构思下,一个个图形化程序实例充分展示了对象的内在变化和强大功能,生动地再现了封装、继承和多态等概念的应用。可以说,对象概念和技术与图形化程序结合在一起,相得益彰,产生了非常好的学习效果。

本书还有什么值得期待的么?当然。除了对表达式、条件语句、循环、递归、数据结构、I/O等必备的Java编程知识进行详细系统地介绍外,本书还用专门的一章介绍了“设计模式”。这一章对于学生了解、认识设计模式,进而在自己的程序中应用模式打下了很好的基础。这对于读者今后的学习经历和职业生涯都是大有裨益的。

从知识内容的全面性来讲,本书对于Java网络编程、多线程等话题都没有涉及,这似乎略有些缺憾。但是,作为教材,作者的这种选择就容易理解了,因为,这些内容完全可以启发学生在课后通过查阅相关的资料进行自学和扩展。总的来说,本书是一本具有很强的特色和实用性的教材。如果你希望自己的学生不再会面临前面提到的那种尴尬,如果你希望在掌握编程技能之外对OO的精髓有更深刻一些的理解,如果你希望轻松而愉快地学习Java面向对象编程并牢固地掌握这些知识技能,那么,本书是你再也合适不过的选择。

感谢机械工业出版社华章分社的编辑为本书出版工作付出的辛勤劳动。由于译者水平有限,难免挂一漏万,译文有任何不妥之处,欢迎通过[email protected]和我们交流探讨,以期共同进步。

 

你可能感兴趣的:(《Java面向对象程序设计——图形化方法》译序)