`
izuoyan
  • 浏览: 8934629 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《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面向对象编程并牢固地掌握这些知识技能,那么,本书是你再也合适不过的选择。
感谢机械工业出版社华章分社的编辑为本书出版工作付出的辛勤劳动。由于译者水平有限,难免挂一漏万,译文有任何不妥之处,欢迎通过reejohn@sohu.com.cn和我们交流探讨,以期共同进步。
分享到:
评论

相关推荐

    《C++ Primer中文版(第3版)》(Stanley B. Lippman[美]、Josee Lajoie[美] 著,潘爱民、张丽 译)

    对于C++初学者特别有价值的是一些来自真实世界中的程序例子,它们说明了泛型程序(generic program)的设计、面向对象程序的设计、模板的用法,以及使用标准C++进行程序设计的方方面面,并且在适当的地方还讲到一些...

    C 设计新思维——泛型编程与设计范式之应用 PDF.rar

    C 设计新思维——泛型编程与设计范式之应用 PDF,候捷译序。㆒般人对C templates 的粗略印象,大约停留在「容器(containers)」的制作上。稍有研究由会发现,templates衍生出来的C Generic Programming(泛型编程)技术...

    lua 程序设计学习.doc 版

    第16章 面向对象程序设计 16.1 类 16.2 继承 16.3 多重继承 16.4 私有性(privacy) 16.5 Single-Method的对象实现方法 第17章 Weak表 17.1 记忆函数 17.2 关联对象属性 17.3 重述带有默认值的表 第三篇 标准库 第18...

    C++入门到精通

    17章介绍了C++对于面向对象程序设计主要要素的支持 继承和动态绑定 在面向对象的程 序设计中 用父/子关系 也称类型/子类型关系 来定义 有共同行为的各个类 类不用 重新实现共享特性 它可以继承了父类的数据和操作 ...

    Java 程序里的内存泄漏

    译序:Java 的内存泄漏,这不是一个新话题。Jim Patrick 的这篇文章早在 2001 年写出来了。但这并不意味着 Java 的内存泄漏是一个过时了的甚至不重要的话题。相反,Java 的内存泄漏应当是每一个关心程序健壮性、稳定...

    出色图形用户界面(GUI)设计规范

    +++++++++++++++++++++++++++++++++++++++++++++++++图形用户界面(GUI)已经成为用户界面的首选,但不论GUI如何流行,令人诧异的是没几个程序有好的界面设计。另外,想找一些介绍如何编制出色用户界面的材料也相当...

    《公共事物的治理之道》中文版译序.docx

    《公共事物的治理之道》中文版译序.docx

    Programming In Lua First Edition(Revision 1.0) - PDF [不推荐下载,请下载Revision 2.0]

    关键字:Programming In Lua、Lua程序设计、Revision 1.0 译序 作为脚本语言,Lua以其简洁优雅著称,对ANSI C标准的遵循令其具有很好的可移植性,并能高效地运行于各操作系统平台。与其他脚本语言不同,Lua自诞生...

    Programming In Lua First Edition(Finalized Revision 2.0) - PDF

    关键字:Programming In Lua、Lua程序设计、Finalized Revision 2.0 译序 作为脚本语言,Lua以其简洁优雅著称,对ANSI C标准的遵循令其具有很好的可移植性,并能高效地运行于各操作系统平台。与其他脚本语言不同,...

    GNS3 +tutorial(中文版)

    GNS 图形化网络模拟器 Windows用户的GNS Quick Start Guide Step 1:下载GNS Step 2:安装GNS Step 3:配置IOS 创建简单的网络拓扑 GNS的主界面 创建复杂的网络拓扑 在网路拓扑中添加PC 使用PuTTY或TeraTerm等终端...

    Programming In Lua First Edition(Finalized Revision 2.0) - 7Z

    关键字:Programming In Lua、Lua程序设计、Finalized Revision 2.0 译序 作为脚本语言,Lua以其简洁优雅著称,对ANSI C标准的遵循令其具有很好的可移植性,并能高效地运行于各操作系统平台。与其他脚本语言不同,...

    C 标准程序库自修教程与参考手册

    c 标准程序库-自修教本与参考工具 侯捷 孟岩 译 巨细靡遗·井然有序(侯捷译序) 孟岩译序 目录 前言 致谢 1.关于本书 2.C 及其标准程序库简介 3.一般概念 4.通用工具 5....

    大周新译序

    解释信息密码的一本很奇妙的序,资源概述,文档片段,20字不是问题

    Effective C++ 中文版

    6.继承与面向对象设计 条款32:确定你的public继承塑模出is-a关系 条款33:避免遮掩继承而来的名称 条款34:区分接口继承和实现继承 条款35:考虚virtual函数以外的其他选择 条款36:绝不重新定义继承而来的non...

    《深度探索C++对象模型》(Stanley B·Lippman[美] 著,侯捷 译)

    本书重点:探索“对象导向程序所支持的C++对象模型”下的程序行为。对于“对象导向性质之基础实现技术”以及“各种性质背后的隐含利益交换”提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序...

    Rainmeter中文手册第四版

    本次手册除译序与目录共分为使用手册、参考手册、提示与技巧、开发人员。 使用手册主要面向初级使用者,介绍Rainmeter的基础操作、皮肤的基础操作与制作以及一些基本的概念。中高级使用者也可以通读一遍使用手册,以...

    Lua中文教程(pdf版)

    第16章面向对象程序设计.................118 16.1 类.........119 16.2 继承.....121 16.3 多重继承...............122 16.4 私有性(privacy)...................125 16.5 Single-Method的对象实现方法127 ...

    泛型编程与STL Generic Programming and the STL: Using and Extending the C++ Standard Template Library

     许多程序员可能并不知道,C++不仅是一个面向对象程序语言, 它还适用于泛型编程(generic programming)。这项技术可以大大增强你的能力,协助你写出高效率并可重复运用的软件组件(software components)。  本书由...

Global site tag (gtag.js) - Google Analytics