友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

Java编程思想第4版[中文版](PDF格式)-第2部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


提供的所有帮助!(Dan Cashmer,B。C。Ziegler & Co。)  

  

祝贺你完成了一件伟大的作品。我现在下载的是《Thinking in Java》的PDF 版。这本书还没有读 

完,便迫不及待地跑到书店去找你的《Thinking in C++》。我在计算机界干了 8 年,是一个顾问, 

兼软件工程师、教师/培训专家,最近辞职自己开了一间公司。所以见过不少的书。但是,正是这些 

书使我的女朋友称我为“书呆子”!并不是我概念掌握得不深入——只是由于现在的发展太快,使我 

短期内不能适应新技术。但这两本书都给了我很大的启示,它与以前接触过或买过的计算机参考书都 

大不相同。写作风格很棒,每个新概念都讲得很好,书中充满了“智慧”。(Simon Goland, 

simonsez@smartt。,Simon Says Consulting 公司)  

  

必须认为你的《Thinking in Java》非常优秀!那正是我一直以来梦想的参考书。其中印象最深的是 

有关使用 Java 1。1 作软件设计时的一些优缺点分析。(DirkDuehr,Lexikon Verlag,Bertelsmann  

AG,德国)  

  

谢谢您写出两本空前绝后的书(《Thinking in Java》和《Thinking in C++》)。它们使我在面向 

对象的程序设计上跨出了一大步。(Donald Lawson ,DCLEnterprises)  

  

谢谢你花时间写出一本真正有用的 Java 参考书,你现在绝对能为自己的工作感到骄傲了。(Dominic  

Turner,GEAC Support)  

  

这是我见过的最好的一本 Java 书。(Jean…Yves MENGANT,Chief Software Architect NAT

SYSTEM,法国巴黎)  

  

 《Thinking in Java》无论在覆盖的范围还是讲述方法上都有独到之处。看懂这本书非常容易,摘录 

的代码段也很有说服力。(Ron Chan ,Ph。D,Expert Choice 公司,Pittsburgh PA )  

  

你的书太棒了。我看过许多编程书刊,只有你的书给人一种全新的视野。其他作者都该向你好好学习 

才是。(Ningjian Wang ,信息系统工程师,The Vangurad Group )  

  



                                                                            4 


…………………………………………………………Page 6……………………………………………………………

 《Thinking in Java》是一本出色的、可读性极强的书,我已向我的学生推荐阅读。(Dr。 Pual  

Gorman,计算机科学系,Otago 大学,Dunedin 市,新西兰)  

  

在我看过的书中,你的书最有品味,不象有的书那样粗制滥造。任何搞软件开发的人都不应错过。 

 (Jose Suriol,Scylax 公司)  

  

感谢您免费提供这本书,它是我看过或翻过的最好的一本。(JeffLapchinsky,Net Results  

Technologies 公司程序员)  

  

这本书简明扼要,看起来不仅毫不费力,而且象是一种享受。(Keith Ritchie ,Java 研发组,KL  

Group 公司)  

  

这真的是我看过的最好的一本 Java 书!(Daniel Eng)  

  

我看过的最好的Java 书!(Rich Hoffarth ,Senior Architect,West Group)  

  

感谢你这本出色的书籍,我好久都没有经历让人如此愉悦的阅读过程了。(Fred Trimble,Actium 

公司)  

  

你的写作能准确把握轻重缓急,并能成功抓住细节。这本书让学习变成了一件有趣的事情,我感觉满 

意,非常满意!谢谢你这本出色的学习教程。(Rajesh Rau,软件顾问)  

  

 《Thinking in Java》让整个自由世界都感受到了震憾!(Miko O'Sullivan,Idocs 公司总裁)  

  

关于《Thinking in C++》:  

  

荣获 1995 年由《软件开发》杂志评选的“最佳书籍”奖!  

  

 “这本书可算一个完美的典型。把它放到自己的书架上绝对不会后悔。关于 IO数据流的那部分内容 

包含了迄今为止我看过的最全面、最容易理解的文字。”(Al Stevens,《道伯博士》杂志投稿编 

辑)  

  

 “Eckel 的书是唯一一本清楚解释了面向对象程序设计基础问题的书。这本书也是 C++的一本出色教 

材。”(Andrew Binstock,《Unix Review》编辑)”  

  

 “Bruce 用他对C++深刻的洞察力震惊了我们,《Thinking in C++》无疑是各种伟大思想的出色组 

合。如果想得到各种困难的C++问题的答案,请购买这本杰出的参考书”(Gary Entsminger,《对 

象之道》的作者)  

  

 “《Thinking in C++》非常耐心和有技巧地讲述了关于 C++的各种问题,包括如何使用内联、索 

引、运算符过载以及动态对象。另外还包括一些高级主题,比如模板的正确使用、违例和多重继承 

等。所有这些都精巧地编织在一起,成为 Eckel 独特的对象和程序设计思想。所有 C++开发者的书架 

上都应摆上这本书。如果你正在用 C++搞正式开发,这本书绝对有借鉴价值。”(Richard Hale  

Shaw,《PC Magazine》投稿编辑)。  



                                                                              5 


…………………………………………………………Page 7……………………………………………………………

                        写在前面的话  



我的兄弟Todd 目前正在进行从硬件到编程领域的工作转变。我曾提醒他下一次大革命的重点将是遗传工程。  

我们的微生物技术将能制造食品、燃油和塑料;它们都是清洁的,不会造成污染,而且能使人类进一步透视 

物理世界的奥秘。我认为相比之下电脑的进步会显得微不足道。  

但随后,我又意识到自己正在犯一些科幻作家常犯的错误:在技术中迷失了(这种事情在科幻小说里常有发 

生)!如果是一名有经验的作家,就知道绝对不能就事论事,必须以人为中心。遗传对我们的生命有非常大 

的影响,但不能十分确定它能抹淡计算机革命——或至少信息革命——的影响。信息涉及人相互间的沟通: 

的确,汽车和轮子的发明都非常重要,但它们最终亦如此而已。真正重要的还是我们与世界的关系,而其中 

最关键的就是通信。  

这本书或许能说明一些问题。许多人认为我有点儿大胆或者稍微有些狂妄,居然把所有家当都摆到了Web 

上。“这样做还有谁来买它呢?”他们问。假如我是一个十分守旧的人,那么绝对不这样干。但我确实不想 

再沿原来的老路再写一本计算机参考书了。我不知道最终会发生什么事情,但的确认为这是我对一本书作出 

的最明智的一个决定。  

至少有一件事是可以肯定的,人们开始向我发送纠错反馈。这是一个令人震惊的体验,因为读者会看到书中 

的每一个角落,并揪出那些藏匿得很深的技术及语法错误。这样一来,和其他以传统方式发行的书不同,我 

就能及时改正已知的所有类别的错误,而不是让它们最终印成铅字,堂而皇之地出现在各位的面前。俗话 

说,“当局者迷,旁观者清”。人们对书中的错误是非常敏感的,往往毫不客气地指出:“我想这样说是错 

误的,我的看法是……”。在我仔细研究后,往往发现自己确实有不当之处,而这是当初写作时根本没有意 

识到的(检查多少遍也不行)。我意识到这是群体力量的一个可喜的反映,它使这本书显得的确与众不同。  

但我随之又听到了另一个声音:“好吧,你在那儿放的电子版的确很有创意,但我想要的是从真正的出版社 

那里印刷的一个版本!”事实上,我作出了许多努力,让它用普通打印机机就能得到很好的阅读效果,但仍 

然不象真正印刷的书那样正规。许多人不想在屏幕上看完整本书,也不喜欢拿着一叠纸阅读。无论打印格式 

有多么好,这些人喜欢是仍然是真正的“书”(激光打印机的墨盒也太贵了一点)。现在看来,计算机的革 

命仍未使出版界完全走出传统的模式。但是,有一个学生向我推荐了未来出版的一种模式:书籍将首先在互 

联网上出版,然后只有在绝对必要的前提下,才会印刷到纸张上。目前,为数众多的书籍销售都不十分理 

想,许多出版社都在亏本。但如采用这种方式出版,就显得灵活得多,也更容易保证赢利。  

这本书也从另一个角度也给了我深刻的启迪。我刚开始的时候以为Java “只是另一种程序设计语言”。这个 

想法在许多情况下都是成立的。但随着时间的推移,我对它的学习也愈加深入,开始意识到它的基本宗旨与 

我见过的其他所有语言都有所区别。  

程序设计与对复杂性的操控有很大的关系:对一个准备解决的问题,它的复杂程度取决用于解决它的机器的 

复杂程度。正是由于这一复杂性的存在,我们的程序设计项目屡屡失败。对于我以前接触过的所有编程语 

言,它们都没能跳过这一框框,由此决定了它们的主要设计目标就是克服程序开发与维护中的复杂性。当 

然,许多语言在设计时就已考虑到了复杂性的问题。但从另一角度看,实际设计时肯定会有另一些问题浮现 

出来,需把它们考虑到这个复杂性的问题里。不可避免地,其他那些问题最后会变成最让程序员头痛的。例 

如,C++必须同 C 保持向后兼容(使 C 程序员能尽快地适应新环境),同时又要保证编程的效率。C++在这两 

个方面都设计得很好,为其赢得了不少的声誉。但它们同时也暴露出了额外的复杂性,阻碍了某些项目的成 

功实现(当然,你可以责备程序员和管理层,但假如一种语言能通过捕获你的错误而提供帮助,它为什么不 

那样做呢?)。作为另一个例子,Visual Basic (VB)同当初的BASIC 有关的紧密的联系。而 BASIC 并没有 

打算设计成一种能全面解决问题的语言,所以堆加到VB 身上的所有扩展都造成了令人头痛和难于管理和维护 

的语法。另一方面,C++、VB 和其他如Smalltalk 之类的语言均在复杂性的问题上下了一番功夫。由此得到 

的结果便是,它们在解决特定类型的问题时是非常成功的。  

在理解到Java 最终的目标是减轻程序员的负担时,我才真正感受到了震憾,尽管它的潜台词好象是说:“除 

了缩短时间和减小产生健壮代码的难度以外,我们不关心其他任何事情。”在目前这个初级阶段,达到那个 

目标的后果便是代码不能特别快地运行(尽管有许多保证都说Java 终究有一天会运行得多么快),但它确实 

将开发时间缩短到令人惊讶的地步——几乎只有创建一个等效 C++程序一半甚至更短的时间。这段节省下来 

的时间可以产生更大的效益,但Java 并不仅止于此。它甚至更上一层楼,将重要性越来越明显的一切复杂任 

务都封装在内,比如网络程序和多线程处理等等。Java 的各种语言特性和库在任何时候都能使那些任务轻而 

易举完成。而且最后,它解决了一些真正有些难度的复杂问题:跨平台程序、动态代码改换以及安全保护等 

等。换在从前,其中任何每一个都能使你头大如斗。所以不管我们见到了什么性能问题,Java 的保证仍然是 

非常有效的:它使程序员显著提高了程序设计的效率!  



                                                           6 


…………………………………………………………Page 8……………………………………………………………

在我看来,编程效率提升后影响最大的就是Web。网络程序设计以前非常困难,而 Java 使这个问题迎刃而解 

 (而且Java 也在不断地进步,使解决这类问题变得越来越容易)。网络程序的设计要求我们相互间更有效率 

地沟通,而且至少要比电话通信来得便宜(仅仅电子函件就为许多公司带来了好处)。随着我们网上通信越 

来越频繁,令人震惊的事情会慢慢发生,而且它们令人吃惊的程度绝不亚于当初工业革命给人带来的震憾。  

在各个方面:创建程序;按计划编制程序;构造用户界面,使程序能与用户沟通;在不同类型的机器上运行 

程序;以及方便地编写程序,使其能通过因特网通信——Java 提高了人与人之间的“通信带宽”。而且我认 

为通信革命的结果可能并不单单是数量庞大的比特到处传来传去那么简单。我们认为认清真正的革命发生在 

哪里,因为人和人之间的交流变得更方便了——个体与个体之间,个体与组之间,组与组之间,甚至在星球 

之间。有人预言下一次大革命的发生就是由于足够多的人和足够多的相互连接造成的,而这种革命是以整个 

世界为基础发生的。Java 可能是、也可能不是促成那次革命的直接因素,但我在这里至少感觉自己在做一些 

有意义的工作——尝试教会大家一种重要的语言!  



                                                              7 


…………………………………………………………Page 9……………………………………………………………

                             引言  



同人类任何语言一样,Java 为我们提供了一种表达思想的方式。如操作得当,同其他方式相比,随着问题变 

得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遗。  

不可将Java 简单想象成一系列特性的集合;如孤立地看,有些特性是没有任何意义的。只有在考虑“设 

计”、而非考虑简单的编码时,才可真正体会到Java 的强大。为了按这种方式理解 Java,首先必须掌握它 

与编程的一些基本概念。本书讨论了编程问题、它们为何会成为问题以及 Java 用以解决它们的方法。所以, 

我对每一章的解释都建立在如何用语言解决一种特定类型的问题基础上。按这种方式,我希望引导您一步一 

步地进入Java 的世界,使其最终成为您最自然的一种语言。  

贯穿本书,我试图在您的大脑里建立一个模型——或者说一个“知识结构”。这样可加深对语言的理解。若 

遇到难解之处,应学会把它填入这个模型的对应地方,然后自行演绎出答案。事实上,学习任何语言时,脑 

海里有一个现成的知识结构往往会起到事半功倍的效果。  



1。 前提  



本书假定读者对编程多少有些熟悉。应已知道程序是一系列语句的集合,知道子程序/函数/宏是什么,知 

道象“If”这样的控制语句,也知道象“while”这样的循环结构。注意这些东西在大量语言里都是类似的。 

假如您学过一种宏语言,或者用过 Perl 之类的工具,那么它们的基本概念并无什么区别。总之,只要能习惯 

基本的编程概念,就可顺利阅读本书。当然,C/C++程序员在阅读时能占到更多的便宜。但即使不熟悉 C,一 

样不要把自己排除在外(尽管以后的学习要付出更大的努力)。我会讲述面向对象编程的概念,以及Java 的 

基本控制机制,所以不用
返回目录 上一页 下一页 回到顶部 1 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!