java相关书籍

所需积分/C币:18 2017-12-13 19:00:59 2.12MB PDF

thinking in java中文版,需要的可以下载啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
我到现在只读了《 Thi nki ng i n Java》的40页内容,但已对它留下了深刻的印象。这无疑是见过的 最精彩的编程专业书..而且我本身就是一个作家,所以这点儿看法还是有些权威吧。我已订购了 《 Thi nki ng in C艹》,已经等得迫不及待了—我是名编程新手,最怕的就是散乱无章的学习线 索。所以必须在这里向您的出色工作表示欹意。以前看过的书似乎都有这方面的毛病,经常使我才提 起的兴致消弥于无形。但看了你的书以后,感觉好多了。( G enn becker, Educat i onal theat re Associ at i on 谢谢您这本出色的书。在终于认识了Java与C++之间纠缠不清的些事实后,我真的要非常感谢这 本书。对您的书非常满意!(Feliⅹ Bi zaoui, wi n Oaks i ndustri es, Loui sa,va) 恭喜你写出这么好的本书。我是在有了阅读《 Thi nki ng i n C+》的经历以后,才来看这本 《 Thi nki ng i n Java》的,它确实没让我失望。( Jaco van der merwe,软件专家, Dat fusi on Syst ens有限公司, Stel l enbosch,南非) 这是我看过的最好的Java书之一。〔EE. Prit char d,资深软件工程师,英国剑桥动画系统有限公 你的东东让其他Java参考收然失色。看来其他作者都应该向你看齐了。( Brett g porter,资深 程序员,At&Lagc) 我花了一、两个星期的时间来看你的书,并对以前我看过的些Java书进行了比较。显然,只有你 的书才能让我真正"入门”。现在,我已向我的许多朋友推荐了这本书,他们都对其作出了很高的评 价。请接受我真诚的祝贺,并希望她早些正式出版。( Rana Kri shna Bhupat hi,软件工程师,Ta 公司,圣琼斯) 这是一本充瀟智慧的书,与简单的参考书有着截然不同的风格。它现在已成了我进行Java创作份 主要参考。你的目录做得相当不错,让人一目了然,很快就能找到自己需要的东西。更高兴的是,这 本书没有写成一本改头换面的AP字典,也没有把我们这些程序员看作傻。( Grant Sayer,Java Conponent s Group Leader, Ceedat a Syst ens Pty有限公司,澳大利亚 啧啧,一本可读性强、论据充分的Java书。外面有太多用词贫乏的JaNa书(也有几本好的),只有 你的书是最好的。那些垃圾在你的书前面不值一提。(JohηRoot,Vb开发员,伦敦社会安全部) 我刚网开始看《 Thi nki ng i n Java》。我希望它簏有更大的突破,因为巛 hi nki ng in C+写得实 在太好了。我是名有经验的〔+程序员,事先看那本书对学习Java很有帮助。但我在JaNa上的经 验不够,希望这本新书能让我满意。您真是一名“高产高质”作者。( Kevi nk lew s, ① ect space公司技术员) 我认为这是本好书。从这本书中,我学到了与Java有关的所有知识。谢谢你能让这本书通过互联网 免费发行。如果不那样做,我根本不可能象现在这样有巨大的进步。但最令人高兴的是,你的书并没 有成为一本官方Java手册,指出了Java-些不当的地方。你真是做了一件大好事。( Frederik fix g! um) 我现在经常査阅你的书。大约两年前,当我想开始学习C+的时候,是《++ I nsi de&Qt》指导我游 历C+的世界。它使我在这方面的技能大增,并找到了一个较妤的职位。现在出于工作上的原因需要 学习Java,又是《 Thi nki ng i n Java》给我正确的指引。尽管现在可选择的书更多了,但犭知道自 己别无选择。很奇妙,不是吗?现在看这本书的时候,我居然有_种重新认识自己的感觉。衷心感谢 你,我现在的理解又比以前深入多了。( Anand Kunar s.,软件工程师, Comput ervi si on公司,印 度) 你的书给人一种“鹤立鸡群”的感觉。( Peter robi nsorη,剑杯大学计算机实验室) 这是我看过的最好的本Java参考书。现在想起来,能这样的本书简直是幸运。谢谢! ( Chuck peterson,因特网产品线主管,IⅥ iNternat i onal公司) 这本书太棒了!它已是我看过的第三本」ava书了,真后悔没有早点儿发现它。前两本书都没坚持看 完,但我已决心看完这一本。不妨告诉你,当时我是想寻找关于内部类使用的一些资料,是我的朋友 告诉我网上能下载这本书。你千得真不错!( Jerry bulin,Ms, Lucent Technol og es) 在我看过的6本Java书中,你的《 Thi nki ng i n Java》是最好和最有用的。( Michael van Was, PhD, TMR Associ ates公司总裁) 我很想对《 Thi nki ng i n Java》说声谢谢。这是一本多么出色的书—并不单指它在网上免费发送! 作为名学生,我以为你的书有不可估量的价值(我有《C艹 i nsi de&ot》的拷贝,那是关于C+的 另一本好书),因为它不仅教我怎样做,而且解释了为什么。这当然为我用C域Java这样的语言 编程打下了坚实的基础。我有许多朋友者象我一样热爱编程,在向他们推荐了这本书后,反映都非常 好,他们的看法同我一样。再次感谢您。顺便提一句,我是一个印尼畜牲,整天都喜欢和」ava泡在 起!( Ray Freder i ck可可 adi nat a, Tri salt i大学学生, i ndonesi an pork) 你把这本书放在网上引起了相当程度的轰动,我对你的做法表示真诚的感谢与支持!( Shane LeBouthillier,加拿大艾伯特大学计算杋工程系学生) 告诉你吧,我是多么热烈地盼望读到你毎个月的专栏!作为P设计的新手,我要感谢你把即使最基 本的概念都讲得那么透彻和全面。我已下载了你的书,但我保证会在它正式出版后另行购买。感谢你 提供的所有帮助!( Dan Cas her,B. CAegl er&o.) 祝贺你完成了一件伟大的作品。我现在下轍的是《 Thi nki ng i n Java》的PD版。这本书还没有读 完,便迫不及待地跑到书店去找你的巛 Thi nki ng in C+》。我在计算机界干了8年,是一个顾问 兼软件工程师、教师/培训专家,最近辞职自己开了一间公司。所以过不少的书。但是,正是这些 书使我的女朋友称我为“书呆子″!并不是我概念掌握得不深入—只是由于现在的发展太快,使我 短期内不能适应新技术。但这两本书都给了我很大的启示,它与以前接触过或买过的计算机参考书都 大不相同。写作风格很棒,每个新概念都讲得很好,书中充满了“智慧。( Si non gol and, SImansell@Tartt.com,SinonSaysConsulting公司) 必须认为你的《 Thi nki ng in Java》非常优秀!那正是我-直以来梦想的参考书。其中印象最深的是 有关使用Java1.1作软件设计时的一些优缺点分析。( D rkDiehr, Lexi kon Ver I ag, Bert el shan AG,德国) 谢谢您写出两本空前绝后的书(《 Thi nki ng i n Java》和巛 Thi nki ng in C+>)。它们使我在面向 对象的程序设计上跨出了一大步。( Donal d lawson, DiEnt er pr ses) 谢朗你花时间写出一本真正有用的Java参考书,你现在绝对能为自己的工作感到骄傲了。( Dom c Tur ner, GAC Support 这是我见过的最好的一本Java书。(Jean- Yves menGoni, Chi ef sof t ware ar chi tect nat SYSTEM,法国巴黎) 《 Thi nki ng i n Java》无论在覆盖的范围还是讲述方法上都有独到之处。看懂这本书非常容易,摘录 的代码段也很有说服力。( Ron chan,hD, Expert Choi ce公司, Pittsbur gh PA) 你的书太棒了。我看过许多编程书刊,只有你的书给人一种全新的视野。其他作者都该向你好好学习 才是。( N ng i an Wang,信息系统工程师, The Langur ad Group) 4 《 Thi nki ng i n Java》是本出色的、可读性极强的书,我已向我的学生推荐阅渎。(D.Pal rnan,计算机科学系,αago大学, Dunedin n市,新西兰) 在我看过的书中,你的书最有品味,不象有的书那样粗制滥造。仼何搞软件开发的人都不应错过。 Jose suri ol, Scyl ax公司) 感谢您免费提供这本书,它是我看过或翻过的最好的本。( Jef f Lapchi nsky, Net resul ts Technol ogi es公司程序员) 这本书简明扼要,看起来不仅亳不费力;而且象是一种亨受。( Keith ritchi e,Java硏发组,K Goup公司) 这真的是我看过的最好的本Java书!( Dani el Eng) 我看过的最好的Java书!( Ri ch hf f arth, Seni or archi tect, est Group) 感谢你这本出色的书籍,我好久都没有经历让人如此愉悦的闿读过程了。(Fredτribe, Acti um 公司 你的写作能准往确把握轻重绶急,并能成功抓住细节。这本书让学习变成了-件有趣的事情,我感觉满 意,非常意!谢谢你这本出色的学习教程。( Raj esh Rau,软件顾问) 《 Thi nki ng i n Java》让整个自由世界都感受到了震憾!( Mko o sul i van, i dacs公司总裁 关于《 Thi nki ng in C+》 荣获1995年由《软件开发》杂志评选的“最佳书籍”奖 这本书可算一个完美的典型。把它方到自己的书架上绝对不会后悔。关于IO数据流的那部分内容 包含了迄今为止我看过的最全面、最容易理解的文字。″( a St evens,《道伯博士》杂志投稿编 辑) Eckel的书是唯——本清楚解释了面向对象程序设计基础问题的书。这本书也是C+的一本出色教 材。”( Andrew bi nst∝k,《 uhi x Revi eW编辑) Bruce用他对〔+深亥的洞察力震惊了我们,《 Thi nki ng in C艹》无疑是各种伟大思想的出色组 合。如果想得到各种困难的¢+坰题的答案,请购买这本杰岀的参考书”( Gary Ent sm nger,《对 象之道》的作者) 《 Thi nki ng in C++》非常耐心和有技巧地讲述了关于C+的各种问题,包括如何使用內联、索 引、运算符过载以及动态对象。另外还包括一些高级主题,比如模板的正确使用、违例和多重继承 等。所有这些都精巧地编织在起,成为 Eckel独特的对象和程序设计思想。所有C开发者的书架 上都应摆上这本书。如果你止在用C+堉犒正式开发,这本书绝对有借鉴价值。”( Ri chard h|e shaW,《PC№ag3zine》投稿编辑)。 5 写在前面的话 我的兄弟Tod目前正在进行从硬件到编程领域的工作转变。我曾提醒他下一次大革命的重点将是遗传工程 我们的微生物技术将能制造食品、燃和塑料;它们都是清洁的,不会造成污染,而且能使人类进步透视 物理世界的奥秘。我认为相比之下电脑的进步会显得微不足道。 但随后,我又意识到自己正在犯—些科幻作家常犯的错误:在技术中迷失了(这种事情在科幻小说里常有发 生)!如果是一名有经验的作家,就知道绝对不能就事论事,必须以人为中心。遗传戏我们的生命有非常大 的影响,但不能十分确定它能抹淡计算机革命—或至少信息革命的影响。信息涉及人相互间的沟通 的确,汽车和轮子的发明都非常重要,但它们最终亦如此而已。真正重要的还是我们与世界的关系,而其中 最关键的就是通信。 这本书或许能说明一些问题。许多人认为我有点儿大胆或者稍微有些妄,居然把所有家当都摆到了Vb 上。“这样做还有谁来买它呢?”他们问。假如我是一个十分守旧的人,那么绝对不这样干。但我确实不想 再沿原来的老路再写一本计算机参考书了。我不知道最终会发生什么事情,但的确认为这是我对一本书作出 的最明智的一个决定。 至少有一件事是可以肯定的,人们开始向我发送纠错反馈。这是个令人震惊的体验,因为读者会看到书中 的每个角落,并楸出那岀匿得很深的技术及语法错误。这样-来,和其他以传统方式发行的书不同,我 就能及时改正已知的所有类别的错误,而不是让玄们最终印成铅字,堂而皇之地出现在各位的面前。俗话 说,“当局者迷,旁双者清”。人们对书中的错误是非常敏感的,往往亳不客气地揹岀:“我想这样说是错 误的,我的看法是…….”。在我仔细研究后,往往发现自己确实有不当之处,而这是当初写作时根本没有意 识到的(检查多少遍也不行)。我意识到这是群体力量的一个可喜的反映,它使这本书显得的确与众不同。 但我随之又听到了另个声音:“好吧,你在那儿放的电子版的确很有创意,但我想要的是从真正的出版社 那里印刷的一个版本!″事实上,我作出了许多努力,让它用普通打印机就能得到很好的阅读效果,但仍 然不象真正印刷的书那样正规。许多人不想在屏幕上看完整本书,也不喜欢拿着一叠纸阅读。无论打印格式 有多么好,这些人喜欢是仍然是真正的“书”(激光打印机的墨盒也太贵了一点)。现在看来,计算机的革 命仍未使岀版界完全走岀传统的模式。但是,有一个学生向我推荐了未来岀版的种模式:书籍将首先在互 联网上出版,然后只有在绝对心要的前提下,才会印刷到纸张上。目前,为数众多的书籍销售都不十分理 想,许多出版社都在亏本。但如采用这种方式出版,就显得灵活得多,也更容易保证利。 这本书也从另一个角度也给了我深刻的启迪。我刚开始的时候以为Java“只是另一种程序设计语言。这个 想法在许多情况下都是成立的。但随着时间的推移,我对它的学习也愈加深入,开始意识到它的基本宗旨与 我见过的其他所有语言都有所区别。 程序设计与对复杂性的操控有很大的关系∶对个准备解决的问题,它的复杂程度取决用于解决它的机器的 复杂程度。正是由于这一复杂性的存在,我们的程序设计项目屡屡失败。对于我以前接触过的所有编程语 言,它们都没能跳过这一框框,由此决定了它们的主要设计目标就是克服程序开发与维护中的复杂性。当 然,许多语言在设计时就已考虑到了复杂性的问题。但从另一角度看,实际设计时肯定会有另一些问题浮现 出来,需把它们考虑到这个复杂性的问题里。不可避免地,其他那些问题最后会变成最让程序员头痛的。例 如,C+心须同C保持向后兼容(使C程序员能尽快地适应新环境),同时又要保证编程的效率。C+在这两 N方面都设计得很好,为其赢得了不少的声誉。但它们同时也暴露出了额外的复杂性,阻碍了某些项目的成 功实现〔当然,你可以责备程序员和管理层,但假如_种语言能通过捕获你的错误而提供帮助,它为什么不 那样做呢?)。作为另一个例子,Ⅵ sual basi c(W)同当初的 BASIC有关的紧密的联系。而BAIC并没有 打算设计成一种能全面解决问题的语言,所以堆加到V身上的所有扩展都造成了令人头痛和难于管理和维护 的语法。另一方面,C杜、和其他如 Snal ital k之类的语言均在复杂性的问题上下了一番功夫。由此得到 的结果便是,它们在解决特定类型的问题时是非常成功的。 在理解到Java最终的目标是減轻程序员的负担时,我才真正感受到了震憾,尽管它的潜台词好象是说:“除 了缩短时间和减小产生健壮代码的难度以外,我们不关心其他任何事情。″在目前这个初级阶段,达到那个 目标的后果便是代码不销特另快地远行(尽管有许多保证都说Java终究有—天会运行得多么快),但它确实 将开发时间缩短到令人惊讶的地步—几乎只有创建一个等效C程序一半甚至更短的时间。这段节省下来 的时间可以产生更大的效益,但Java并不仅止于此。它甚至更上一层楼,将重要性越来越明显的切复杂任 务都封装在內,比如网络程序和多线程处理等等。Java的各种语言特性和库在仼何冋时候都能使那些任务轻而 易举完成。而目最后,它解决了—些真正有些难度的复杂问题:跨平台程序、动态代码改换以及安全保护等 等。换在从前,其中任何每个都能使你头大如斗。所以不管我们见到了什么性能间题,Java的保证仍然是 非常有效的:它使程序员显著提高了程序设计的效率! 6 在我看来,编程效率提升后影响最大的就是b网络程序设计以前非常困难,而Java使这个问题迎刃而解 (而且Java也在不断地进步,使解决这类问题变得越来越容易)。网络程序的设计要求我们相互问更有效率 地沟通,而且至少要比电话通信来得便宜(仅仅电子函件就为许多公司带来了好处)。随着我们网上通信越 来越频繁,令人震惊的事情会慢慢发生,而且它们令人吃惊的程度绝不亚于当初工业革命给人带来的震憾。 在各个方面:刨建程序;按计划编袆程序;构造用户界面,使程序能与用户沟通;在不同类型的机器上运行 程序;以及方便地编写程序,使其能通过因特网通信Java提高了人与人之间的“通信带宽”。而且我认 为通信革命的结果可能并不单单是数量庞大的比特到处传来传去那么简单。我们认为认清真正的革命发生在 哪里,因为人和人之间的交流变得更方便了——个体与个体之间,个体与组之间,组与组之间,甚至在星球 之间。有人预言下一次大革命的发生就是由于足够多的人和足够多的相互连接造成的,而这种革命是以整个 世界为基础发生的。」ava可能是、也可能不是促成那次革命的直接因素,但我在这里至少感觉自己在做-些 有意义的工作尝试教会大家一种重要的语言! 引言 同人类任何珸言样,Java为我们提供了—种表达思想的方式。如操作得当,同其他方式相比,随着问题变 得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遄。 不可将Java简单想象成一系列特性的集合;如孤立地看,有些特性是没有任何意义的。只有在考虑“设 计”、而非考虑简单的编码时,才可貞正体会到Java的强大。为了按这种方式理解Java,首先心须掌握它 与编程的一些基本概念。本书讨论了编程问题、它们为何会成为问题以及Java用以决它们的方法。所以 我对每章的解释都踺建立在如何用语言解决·种特定类型的冋题基础上。按这种方式,我希望引导您步一 步地进入Java的世界,使其最终成为您最自然的种语言。 贯穿本书,我试图在您的大脑里建立一个模型—或者说一个“知识结构”。这样可加深对语言的理解。若 遇到难解之处,应学会把它填入这个模型的对应地方,然后自行演绎出答窯。事实上,学习任何语言时,脑 海里有一个现成的知识结构往往会起到事半功倍的效果。 1.前提 本书假定读者对绵程多少有些熟悉。应已知道程序是一系列诟句的集合,知道子程序/函数/宏是什么,知 道象“If″这样的控制语句,也知道象"wile"这样的循环结构。注意这些东西在大量语言里都是类似的。 假如您学过种宏语言,或者用过Perl之类的工具,那么它们的基本概念并无什么区别。总之,只要能习惯 基本的编程概念,就可利阋读本书。当然,¢C+序员在阅渎时能占到更多的便宜。但即使不熟悉C, 样不要把自己排除在外(尽管以后的学习要付出更大的努力)。我会讲述面向对彖编程的概念,以及Jaαva的 基本控制机制,所以不用担心自己会打不好基础。况且,您需要学习的第-类知识就会涉及到基本的流程控 制语句。 尽管经常都会谈及C和C+语言的一些特性,但并没有打算使它们成为内部参考,而是想帮助所有程序员都 氜正确地看待那两种语言。毕竟,Java是从它倗衍生出来的。我将试着尽可能地简化这些引用和参考, 并合理地解释一名非¢C+程序员通常不太熟悉的內容。 2.Java的学习 在我第一本书《king〔+》面市的几乎同一时间( G borne/ MGr awh于198年出版),我开始教授那 种语言。程序设计语言的教授已成为我的专业。自1989年以来,我便在世界各地见过许多昏昏欲睡、满脸茫 然以及困惑不解的面容。开始在室內面向较少的一组人授课以后,我从作业中发现了一些特别的问题。即使 那些上课面带会心的微笑或者频频点头的学生,对许多问题也存在认识上的混淆。在过去几年间的“软件开 发会议”上,由我主持C+吩分组讨论会(现在变成了」aa讨论会)。有的演讲人试图在很短的时间内向听众 灌输过多的主题。所以到最后,尽管听众的水平都还可以,而且提供的材料也很充定,但仍然损失了-部分 听众。这可能是由于问得太多了,但由于我是那些采取传统授课方式的人之一,所以很想使每个人都跟上 讲课进度。 有段时间,我编制了大量教学简报。经过不断的试验和修订(或称“"反复”,这是在Java程序设计中非常有 用的项技术),最后成功地在一程中集成了从我的教字经验中总结出来的所有东西—我在很长一段 闫里都在使用。其中由一系列离散的、易于消化的小步骤组成,而且每个小课程结束后都有一些适当的练 习。我目前已在Java公开硏讨会上公布了这一课程,大家可到htp//WwBruceEckel.com了解详情(对研 讨会的介绍也以CRO的开提供,具体信息可在同样的b站点找到)。 从每一次硏讨会收到的反馈都帮助我修改及亲袆订学习材料的重心,直到我最后认为它成为—个完善的教 学载体为止。但本书并非仅仅是一本教科书我尝试在其中装入尽可能多的信息,并按照主题进行了有序 的分类。无论如何,这本书的主要宗旨是为那些独立学习的人士服务,他们正准备深入一门新的程序设计语 言,而没有太大的可能参加此类专业研讨会。 3.目标 就象我的前本书巛 Thi nki ng in C+》一样,这本书面向语言的教授进行了良好的结构与组织。特别地,我 的目标是建立一套有序的机制,可帮助我在自己的研讨会上更好地进行语言教学。在我思考书中的一章时, 实际上是在想如何教好堂课。我的目标是得到—系列规模适中的教学模块,可以在合理的时间内教完。随 后是一些精心挑选的练习,可以在课堂上当即完成。 在这本书中,我想达到的目标总结如下 8 (1)毎次都将教学內容向前推进小步,便于读者在继续后面的学习前消化前面的內容。 2)采用的示例尽可能短。当然,这样做有时会妨碍我解决“现实世界″的问题。但我同时也发现对那些 新手来说,如果他们能理解每一个细节,那么一般会产生更大的学习兴趣。而假如他们开始就被要解决的 问题的深度和广度所震惊,那么一般都不会收到很妤的学习效果。另外在实际教学过程中,对能够摘录的代 码数量是有严重限袆的。另一方面,这样做无疑会有些人会批评我采用了“不貞实的例子f”,但只要能己 良好的效果,我宁愿接受这一指责。 3)要揭示的特性按照我精心挑选的顺序依次岀场,而且尽可能符合读者的思想历程。当然,我不可能永远 都做到这一点;在那些情况下,会给岀段简要的声明,指出这个问题。 (4)只把我认为有助于理解语言的东西介绍给者,而不是把犭知道的-切东西都抖出来,这并非私。我 认为信息的重要程度是存在一个合理的层次的。有些情况是95%的程序员都永远不必了解的。如強行学习 只会干扰他们的正常思维,从而加深语言在他们面前表现岀来的难度。以C语言为例,假如你能记住运算符 优先次序表(我从来记不住),那么就可以写出更“聪明”的代码。但再深入想一层,那也会使代码的读者 /维护者感到困扰。所以忘了那些次序吧,在拿不准的时候加上括号即可 (5每节都有明确的学习重点,所以教学时间(以及练刁的间隔时间)非常短。这样做不仅能保持读者思 想的活跃,也能使问题更容易理解,对自己的学习产生更大的信心 6)提供—个坚实的基础,使读者能充分理解冋题,以便更容易转向—些更加困难的课程和书籍。 4.联机文档 由SⅦn微系统公司提供的Java语言和库(可免费下载)配套提供了电子版的用户帮助手册,可用νb浏览器 阅读。此外,由其他厂商开发的几乎所有类似产品都有一套等价的文档系统。而目前出版的与Java有关的几 乎所有书籍都重复了这份文档。所以你要么已经拥有了它,要么需要下载。所以除非特别心要,否则本书不 会重复那份文档的内容。因为一般地说,用νb浏览器査找与类有关的资料比在书中查找方便得多(电子版 的东西更新也快)。只有在需要对文栏进行补充,以便你能理解一个特定的例子时,本书才会提供有关类的 些附加说明 5.章节 本书在设讣时认真考虑了人们学习Java语言的方式。在我授课时,学生们的反映有效地帮助了我认识哪些部 分是比较床难的,需特別加以留意。我也曾经次讲述了太多的问题,但得到的教训是:假如包括了大量新 特性,就需雯对它们全部作出解释,而这特別容易加深学生们的混淆。因此,我进行了大量努力,使这本书 次尽可能地少涉及一些问题 所以,我在书中的目标是让每章都讲述种语言特性,或者只讲述少数几个相互关联的特性。这样来 读者在转向下一主题时,就能更容易地消化前面学到的知 下面列出对本书各章的个简要说明,它们与我实际进行的课堂教学是对应的。 (1)第1章:对象入门 这一章是对面向对象的程序设计(P)的一个综述,其中包括对“什么是对象”之类的基本问题的回答,并 讲述了接口与实现、抽象与封裝、消息与函数、继承与合成以及非常重要的多形性的概念。这一章会向大家 提出—些对象创建的基本问题,比如构建器、对象存在于冋处、创建好后把它们置于什么地方以及魇术般的 垃圾收集器(能够清除不再需要的对象)。要介绍的另-些问题还包括通过违例实现的错误控制机制、反应 灵敏的用户界面的多线程处理以及连网和因特网等等。大家也会从中了解到是什么使得Java如此特别,它为 什么取得了这么大的成功,以及与面向对象的分析与设计有关的问题。 2)第2章:一切都是对象 本章将大家带到可以着于写自己的第—个Java程序的地方,所以必须对-些基本概念作出解释,其中饣括对 象“‘句柄”的概念;怎样刨建—个对象;对基本数据类型和数组的个介绍;作用域以及垃圾收集器清除对 象的方式;如何将Java中的所有东西都归为种新数据类型(类),以及如何创建自己的类;函数、自变量 以及返回值;名字的可见度以及使用来自其他库的组件; statIC关键字;注释和嵌入文档等等。 (3)第3章:控制程序流程 本章开始介绍起源于C和C++,由Java继承的所有运算符。除此以外,还要学习运算符些不易使人注意的 问题,以及涉及造型、升迁以及优先次序的问题。随后要沜述的是基本的流程控制以及选择运算,这些是几 乎所有程序设计语言都具有的特性:用if-else实现选择;用for和ile实现循环;用 br eak和 cont i nue 以及Java的标签式 br eak和 conti une(它们被认为是Java中“不见的gpgo”)退出循环;以及用 sWitch 实现另一种形式的选择。尽管这些与C和C+中见到的有一定的共通性,但多少存在一些区别。除此以外 所有示例都是完整的Java示例,能使大家很快地熟悉Java的外观。 (4)第4章:初始化和清除 本章开始介绍构建器,它的作用是担保初始化的正确实现。对构建器的定义要涉及函数过载的楒念(因为可 能同时有几个构建器)。随后要讨论的是清除过程,它并非肯定如想象的那么简单。用完-个对象后,通常 可以不必管它,垃圾收集器会自动介入,释放由它占据的内存。这里详细探讨了垃圾收集器以及它的—些特 点。在这一章的晸后,我们将更贴近地观察初始化过程:自动成员初始化指定成员初始化初始化的顺 序、 statIc(静态)初始化以及数组初始化等等 (5)第5章:隐实现过程 本章婓探讨将代码封装到起的方式,以及在库的其他部分隐藏时,为什么仍有-部分处于暴露状态。首先 要讨论的是 package和 I npor t关键字,它们的作用是进行文件级的封装(打包)操作,并允许我们构建由类 构成的库(类库)。此时也会谈到目录路径和文件名的问题。本章剩下的部分将讨论 publ i c, prI vate以及 pr ot ected三个关键字、“友好”访问的概念以及各种场合下不同访问控制级的意义。 (6)第6章:类再生 继承的概念是几乎所有O语言中都占有重要的地位。它是对现有类加以利用,并为其洏加新功能的—种有 效途径(同时可以修改它,这是第7章的主题)。通过继承来重复使用原有的代码时(再生),一般需要保 持“基础类”不变,只是将这儿或那儿的东西串联起来,以达到预期的败效果。然而,继承并不是在现有类基 础上制造新类的唯一手段。通过“合成”,亦可将—个对象嵌入新类。在这一章中,大家将学习在Java中重 复使用代码的这两种方法,以及具体如何运用 (7)第7章:多形性 若由你自己來干,可能要花9个月的时间才能发现和理解多形性的问题,这一特性实际是αP一个重要的基 础。通过—些小的、简单的例子,读者可知道如何通过继承来创建一系列类型,并通过它们共有的基础类对 那个系列中的对象进行操作。通过Java的多形性概念,同一系列中的所有对象都具有了共通性。这意味着我 们编写的代码不必再依赖特定的类型信息。这使程序更易扩展,包容力也更强。由此,程序的构建和代码的 维护可以变得更方便,付出的代价也会更低。此外,Java还通过“接口”提供了设置再生关系的第三种途 径。这儿所谓的“接口″是对对象物理“接口″-种纯粹的抽象。一旦理解了多形性的概念,接口的含义就 很容易解释了。本章也向大家介绍了Java1.1的“内部类 8)第8章:对象的容纳 对个非常简单的程序来说,它可能只拥有个固定数量的对象,而且对象的“生存时间”或者“存在时 可”是已知的。但是通常,我们的程序会在不定的时创建新对象,只有在程序运行时才可了解到它们的详 情。此外,除非进入运行期,否则无法知道所需对象的数量,甚至无法得知它们确切的类型。为解决这个常 见的程序设计问题,我们需要拥有—种能力,可在任何时间、任何地点创建任何数量的象。本章的宗旨便 是探讨在使用对象的同时用来容纳饣们的些Java工具:从简单的数组到复杂的集合(数据结构),如 Vect or和 Hasht abl e等。最后,我们还会深入讨论新型和改进过的」ava1.2集合库。 (⑨)第9章:违例差错控制 Java最基本的设计宗旨之一便是组织错误的代码不会真的运行起来。编译器会尽可能甫获问题。但某些情況 下,除非进入运行期,否则问题是不会被发现的。这些问题要么属于编程错误,要么则是些自然的岀错状 况,它们只有在作为程序正常运行的部分时才会成立。Java为此提供了违例控制机制,用于控制程序 运行时产生的切问题。这一章将解释try、 catch. throw t hr ows以及 fi nal ly等关键字在JaNa中的作 原理。并讲述什么时候应当“掷”出违例,以及在捕获到违例后该采取什么操作。此外,大家还会学习Java 的些标准违例,如何构建自己的违例,违例发生在构建器中怎么办,以及违例控制器如何定位等等。 (10)第10章: Java io系统 理论上,我们可将任何程序分割为三部分:输入、处理和输岀。这意味着Io(输入/输出)是所有程序最为 1C

...展开详情
试读 127P java相关书籍
img
liuyaohua3

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐
    java相关书籍 18积分/C币 立即下载
    1/127
    java相关书籍第1页
    java相关书籍第2页
    java相关书籍第3页
    java相关书籍第4页
    java相关书籍第5页
    java相关书籍第6页
    java相关书籍第7页
    java相关书籍第8页
    java相关书籍第9页
    java相关书籍第10页
    java相关书籍第11页
    java相关书籍第12页
    java相关书籍第13页
    java相关书籍第14页
    java相关书籍第15页
    java相关书籍第16页
    java相关书籍第17页
    java相关书籍第18页
    java相关书籍第19页
    java相关书籍第20页

    试读已结束,剩余107页未读...

    18积分/C币 立即下载 >