按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
// the suitability of this software for any purpose。
// It is provided 〃as is〃 without express or implied
// warranty of any kind; including any implied
// warranty of merchantability; fitness for a
// particular purpose or non…infringement。 The entire
// risk as to the quality and performance of the
// software is with you。 Bruce Eckel and the
// publisher shall not be liable for any damages
// suffered by you or any third party as a result of
// using or distributing software。 In no event will
// Bruce Eckel or the publisher be liable for any
// lost revenue; profit; or data; or for direct;
// indirect; special; consequential; incidental; or
// punitive damages; however caused and regardless of
// the theory of liability; arising out of the use of
// or inability to use software; even if Bruce Eckel
// and the publisher have been advised of the
// possibility of such damages。 Should the software
// prove defective; you assume the cost of all
// necessary servicing; repair; or correction。 If you
// think you've found an error; please email all
// modified files with clearly mented changes to:
// Bruce@EckelObjects。。 (Please use the same
// address for non…code errors found in the book。)
/////////////////////////////////////////////////
可在自己的开发项目中使用代码,并可在课堂上引用(包括学习材料)。但要确定版权声明在每个源文件中
得到了保留。
13
…………………………………………………………Page 15……………………………………………………………
9。 编码样式
在本书正文中,标识符(函数、变量和类名)以粗体印刷。大多数关键字也采用粗体——除了一些频繁用到
的关键字(若全部采用粗体,会使页面拥挤难看,比如那些“类”)。
对于本书的示例,我采用了一种特定的编码样式。该样式得到了大多数Java 开发环境的支持。该样式问世已
有几年的时间,最早起源于Bjarne Stroustrup 先生在《The C++ Programming Language》里采用的样式
(Addison…Wesley 1991 年出版,第 2 版)。由于代码样式目前是个敏感问题,极易招致数小时的激烈辩
论,所以我在这儿只想指出自己并不打算通过这些示例建立一种样式标准。之所以采用这些样式,完全出于
我自己的考虑。由于Java 是一种形式非常自由的编程语言,所以读者完全可以根据自己的感觉选用了适合的
编码样式。
本书的程序是由字处理程序包括在正文中的,它们直接取自编译好的文件。所以,本书印刷的代码文件应能
正常工作,不会造成编译器错误。会造成编译错误的代码已经用注释//!标出。所以很容易发现,也很容易用
自动方式进行测试。读者发现并向作者报告的错误首先会在发行的源码中改正,然后在本书的更新版中校订
(所有更新都会在Web 站点http://BruceEckel。 处出现)。
10。 Java 版本
尽管我用几家厂商的Java 开发平台对本书的代码进行了测试,但在判断代码行为是否正确时,却通常以Sun
公司的Java 开发平台为准。
当您读到本书时,Sun 应已发行了 Java 的三个重要版本:1。0,1。1 及 1。2 (Sun 声称每 9 个月就会发布一个
主要更新版本)。就我看,1。1版对Java 语言进行了显著改进,完全应标记成 2。0 版(由于 1。1 已作出了如
此大的修改,真不敢想象2。0 版会出现什么变化)。然而,它的 1。2 版看起来最终将 Java 推入了一个全盛时
期,特别是其中考虑到了用户界面工具。
本书主要讨论了 1。0和 1。1版,1。2版有部分内容涉及。但在有些时候,新方法明显优于老方法。此时,我
会明显偏向于新方法,通常教给大家更好的方法,而完全忽略老方法。然而,有的新方法要以老方法为基
础,所以不可避免地要从老方法入手。这一特点尤以AWT 为甚,因为那儿不仅存在数量众多的老式 Java 1。0
代码,有的平台仍然只支持Java 1。0 。我会尽量指出哪些特性是哪个版本特有的。
大家会注意到我并未使用子版本号,比如 1。1。1。至本书完稿为止,Sun 公司发布的最后一个 1。0版是
1。02;而1。1 的最后版本是 1。1。5 (Java 1。2 仍在做β测试)。在这本书中,我只会提到 Java 1。0,Java
1。1及 Java 1。2,避免由于子版本编号过多造成的键入和印刷错误。
11。 课程和培训
我的公司提供了一个五日制的公共培训课程,以本书的内容为基础。每章的内容都代表着一堂课,并附有相
应的课后练习,以便巩固学到的知识。一些辅助用的幻灯片可在本书的配套光盘上找到,最大限度地方便各
位读者。欲了解更多的情况,请访问:
http://BruceEckel。
或发函至:
Bruce@EckelObjects。
我的公司也提供了咨询服务,指导客户完成整个开发过程——特别是您的单位首次接触Java 开发的时候。
12。 错误
无论作者花多大精力来避免,错误总是从意想不到的地方冒出来。如果您认为自己发现了一个错误,请在源
文件(可在 http://BruceEckel。 处找到)里指出有可能是错误的地方,填好我们提供的表单。将您
推荐的纠错方法通过电子函件发给 Bruce@EckelObjects。 。经适当的核对与处理,Web 站点的电子版以及
本书的下一个印刷版本会作出相应的改正。具体格式如下:
(1) 在主题行(Subject)写上“TIJ Correction”(去掉引号),以便您的函件进入对应的目录。
(2) 在函件正文,采用下述形式:
find: 在这里写一个单行字串,以便我们搜索错误所在的地方
ment: 在这里可写多行批注正文,最好以“here's how I think it shoud read”开头
###
其中,“###”指出批注正文的结束。这样一来,我自己设计的一个纠错工具就能对原始正文来一次“搜
索”,而您建议的纠错方法会在随后的一个窗口中弹出。
14
…………………………………………………………Page 16……………………………………………………………
若希望在本书的下一版添加什么内容,或对书中的练习题有什么意见,也欢迎您指出。我们感谢您的所有意
见。
13。 封面设计
《Thinking in Java》一书封面的创作灵感来源于 American Arts & CraftsMovement (美洲艺术&手工艺品
运动)。这一运动起始于世纪之交,1900 到 1920 年达到了顶峰。它起源于英格兰,具有一定的历史背景。
当时正是机器革命产生的风暴席卷整个大陆的时候,而且受到维多利亚地区强烈装饰风格的巨大影响。
Arts&Crafts 强调的是原始风格,回归自然的初衷是整个运动的核心。那时对手工制作推崇备至,手工艺人
特别得到尊重。正因为如此,人们远远避开现代工具的使用。这场运动对整个艺术界造成了深远的影响,直
至今天仍受到人们的怀念。特别是我们面临又一次世纪之交,强烈的怀旧情绪难免涌上心来。计算机发展至
今,已走过了很长的一段路。我们更迫切地感到:软件设计中最重要的是设计者本身,而不是流水化的代码
编制。如设计者本身的素质和修养不高,那么最多只是“生产”代码的工具而已。
我以同样的眼光来看待 Java :作为一种将程序员从操作系统繁琐机制中解放出来的尝试,它的目的是使人们
成为真正的“软件艺术家”。
无论作者还是本书的封面设计者(自孩提时代就是我的朋友)都从这一场运动中获得了灵感。所以接下来的
事情就非常简单了,要么自己设计,要么直接采用来自那个时期的作品。
此外,封面向大家展示了一个收集箱,自然学者可能用它展示自己的昆虫标本。我们认为这些昆虫都是“对
象”,全部置于更大的“收集箱”对象里,再统一置入“封面”这个对象里。它向我们揭示了面向对象编程
技术最基本的“集合”概念。当然,作为一名程序员,大家对于“昆虫”或“虫”是非常敏感的(“虫”在
英语里是Bug,后指程序错误)。这里的“虫”已被抓获,在一只广口瓶中杀死,最后禁闭于一个小的展览
盒里——暗示Java 有能力寻找、显示和消除程序里的“虫”(这是 Java 最具特色的特性之一)。
14。 致谢
首先,感谢 Doyle Street Cohousing munity (道尔街住房社区)容忍我花两年的时间来写这本书(其实
他们一直都在容忍我的“胡做非为”)。非常感谢 Kevin 和Sonda Donovan,是他们把科罗拉多Crested
Butte 市这个风景优美的地方租给我,使我整个夏天都能安心写作。感谢Crested Butte 友好的居民;以及
Rocky Mountain Biological Laboratory (岩石山生物实验室),他们的工作人员总是面带微笑。
这是我第一次找代理人出书,但却绝没有后悔。谢谢“摩尔文学代理公司”的Claudette Moore 小姐。是她
强大的信心与毅力使我最终梦想成真。
我的头两本书是与 Osborne/McGraw…Hill 出版社的编辑Jeff Pepper 合作出版的。Jeff 又在正确的地方和正
确的时间出现在了 Prentice …Hall 出版社,是他为了清除了所有可能遇到的障碍,也使我感受了一次愉快的
出书经历。谢谢你,Jeff——你对我非常重要。
要特别感谢 Gen Kiyooka 和他的 Digigami 公司,我用的Web 服务器就是他们提供的;也要感谢 Scott
Callaway,服务器是由他负责维护的。在我学习Web 的过程中,一个服务器无疑是相当有价值的帮助。
谢谢Cay Horstmann (《Core Java》一书的副编辑,Prentice Hall 于 1997 年出版)、D'Arcy Smith
(Symantec 公司)和Paul Tyma (《Java Primer Plus》一书的副编辑,The Waite Group 于 1996 年出
版),感谢他们帮助我澄清语言方面的一些概念。
感谢那些在“Java 软件开发会议”上我的 Java 小组发言的同志们,以及我教授过的那些学生,他们提出的
问题使我的教案愈发成熟起来