本书结合大量具体实例介绍了面向对象的程序设计和Java基础。本书所介绍的Java语言的基础内容包括:运算符、表达式、语句,以及带有类和对象的面向对象程序设计、继承和动态方法等。本书还包含对面向对象分析和设计方法应用OOP的概念,并且示范了在集合中组织数据和应用Java的内置数学函数。此外,附录A中提供了与每章末尾习题相应的答案,以帮助读者很好地理解该章内容。通过这种方法,读者可以学习数百个说明每个概念使用方法的生动实例。本书语言简明通俗、内容生动翔实,可作为Java开发人员和非开发人员的参考书。译者序Java语言最初是Sun公司为智能家电开发而设计的语言,由于它具有很强的可移植性、安全性和网络功能,在Internet发展和Web普及的信息时代,成为互联网应用程序开发的主流语言。许多著名的计算机公司纷纷花巨资购买Java的使用权,在全世界掀起了Java的学习热潮。本书全面、系统地介绍了如何使用Sun公司的标准版的SDK1.4来开发Java2应用程序。作者使用设计精巧的实例,形象生动地说明了每个概念的使用方法。使初学者能够很快地掌握相关的概念,即使是有经验的程序员也可以从新的角度来认识这些概念。本书的作者JeffFriesen对Java技术非常着迷,担任了ITworld.com的Java初学者论坛的主持人,编写了大量有关Java的技术文章和书籍。本书是作者丰富实践经验的总结。作为译者,我们很高兴能将本书翻译给国内的广大读者。参加翻译工作的人员有钟萍、张玉峰、吴志英、马云、王焕刚、李颖、房芳、韩云萍、戴云、赵良叶等,全书由叶喜涛审校。在此感谢所有帮助我们的人。由于时间仓促和译者水平有限,书中不妥之处,敬请读者批评指正。作者简介JeffFriesen对Java技术非常着迷,这点可以从他选择JavaJeff作为别名看出来。除本书之外,他还与人合作编写了“SpecialEditionUsingJava2StandardEdition”,并且为JavaWorld和InformIT.com撰写了大量有关Java的文章[前者包括从国际化、Java插件程序到Java的未来发展趋势等内容,后者内容包括从创建自己的媒体播放器到分析Swing的表部件(Swing’stablecomponent)]。他目前正在负责JavaWorld的Java101专栏,该专栏为初学者提供了客户端的Java课程。过去Jeff曾经给综合大学的学生讲授过Java绪论课程,并且担任ITworld.com的Java初学者论坛的主持人,在那里他解答过1000多个有关客户端的Java问题。Jeff具有计算机科学学位,并且开发了C和C++开发软件。要想了解Jeff正在做什么,请访问其网站(www.javajeff.com)。告诉我们你的想法作为读者,你是我们最重要的批评者和宣传者。我们非常重视你的意见,并且想知道我们哪些方面做得好,哪些方面还可以做得更好,你需要我们哪个领域的出版物以及其他想告诉我们的话。作为Que公司的合作发行人,我非常欢迎你的建议。你可以通过传真、电子邮件或者直接写信给我,使我了解你是否喜欢这本书,以及我们如何能把它做得更优秀。请注意,我不能帮助你解决与本书有关的技术问题,并且由于我会收到大量的信件,所以不可能一一回复。在给我们写信时,请务必注明本书的书名、作者和你的名字及电话或者传真机号。我将仔细考虑你的意见,并与本书的作者和编辑一同处理它们。传真:317-581-5831E-mail:feedback@quepublishing.com通信地址:DeanMillerQue201West103rdStreetIndianapolis,IN46290USA前言“用实例学编程”系列“用实例学编程”系列怎样将你变成更出色的程序开发人员?“用实例学编程”系列用尽可能好的方法讲解软件开法技术。在引入一个概念之后,你会看到一个或多个使用这个概念的实例。正文作为指导者,形象地提醒你所学概念要注意的地方,并且说明新的使用方法。实例的数量很大;在讲解新材料的时候,你会看到一个接一个用来说明如何使用新学概念的实例。本系列的原则很简单,即讲解软件开发技术最好的方法是通过实例。向初学者讲解一门编程语言,仅仅使用语言特征、语法特征和语言参考(languagereference)还不够。初学者只有通过阅读很多实例,其中用到刚学过的新特性,并且实际运行实例程序,才能对这种语言有一种感性的认识。本书的读者对象本书是针对希望学习Java的开发人员和非开发人员编写的。本书假设读者具有基本的计算机知识(例如二进制和十六进制),但是要求的知识并不多。为了更好地使用本书,你应该喜欢学习,而且喜欢接受挑战。使用本书不需要具备其他语言的编程经验,当然也不需要熟悉Java。但是读者应该能够熟练地使用Web浏览器浏览Internet并下载软件,因为本书强烈建议读者下载Sun为读者所用平台而提供的Java2标准版SDK的1.4版,本书的例子都是使用1.4版的SDK来编写和测试的(第1章给出下载和安装该SDK的说明)。Sun公司的Java2SDK有各种平台的版本(例如Linux,Windows和Solaris),每个特定平台的SDK包含用于命令行窗口(例如微软的MS-DOS命令行窗口)的构造工具。如果你计划获得一个Java2SDK(1.4版)的副本,就需要熟悉命令行窗口的操作,需要能够使用简单的命令浏?滥柯肌⒋唇柯肌⑸柚没肪潮淞恳约按用钚性诵谐绦颉4送猓詈檬煜に闷教ǖ奶厥獗嗉鳎ɡ鏜S-DOS的EDIT程序)。在安装好Sun公司Java2SDK的正确版本之后,就可以开始学习Java语言的所有基础知识了,从基本的数据类型、表达式、语句到类、对象、异常处理和线程。除了这些核心的Java概念之外,还将学习如何使用几个有用的应用程序编程界面(或简称API)。其中的一些概念对新程序员来说可能有些难度,但是在介绍每个概念的时候,会看到十多个实例。我们特意对这些介绍性的话题进行了强调,目的是确保读完本书的时候,读者完全可以像专业人员一样开发Java应用程序。本书的组织结构本书分为15章、4个附录和1个术语表。全书从前言开始,后面紧接着10章论述Java语言,最后用4章讲解各种重要的API。附录给出了每章末尾所有复习题、练习题和实践题的答案,方便查找的保留字和运算符的优先次序,以及获得其他资源的信息。最后的术语表给出了书中一些重要术语的定义。如何组织本书是一个细致的问题,作者选择一种有组织的结构,先引入比较简单的概念,以后的章节基于这些概念进一步深入。这个组织方法可以帮助读者先熟悉简单的事情,然后再深入到更复杂的事情中去。本书的使用约定本书的几种约定帮助你更快地找到各种信息和语言的语法。另外,本书包含作者的写作风格,遵循Sun公司官方的语言规范——Java语言规范。实例图标在本书的每个实例左边显示这个图标。在一些实例中,需要显示实例的输出结果,这时该图标显示在输出结果的左边。说明、提示和注意说明:通过提供其他或者相关的概念来扩充每一章。提示:给出捷径和公有问题的解决方法。注意:提醒读者注意在Java使用不当时将出现的陷阱。语法在学习一种新的编程语言时,理解各种将语言特征组织成有意?宓脑创氲姆椒ê苤匾0凑漳持衷级ń锓ㄐ问交匦聪吕础1臼樽裱旅娴挠锓ㄔ级ǎ?●语法由文字文本和非文字文本组成。文字文本的说明放在单引号字符之间,并且完全按照其出现的形式输入(不带引号字符)。非文字文本通过使用斜体字来说明(这些文本不放在引号字符之中),非文字文本不需要输入,它们是作为必须提供的文字文本的占位符而使用的。typeIdentifiervariableIdentifier●竖线字符(|)表示在一对可选项之间的选择。另外,每个选择用一对圆括号包起来。●方括号([])表示一个可选项。任何在方括号之中出现的文字文本或者非文字文本都是可选的。你可以提供这些文本,也可以不提供它们。typeIdentifiervariableIdentifier[=expression]●省略号(...)表示一组用逗号隔开的相似特性或可选的外部代码。throwsexceptionIdentifier1exceptionIdentifier2类型、运算符和语句每个作者都有自己的写作风格,我也不例外。例如在讲解基本类型(primitivetype)时,我写成浮点(floating-point)基本类型,而不是float基本类型。这样做是为了方便区分浮点基本类型及其在源代码中的表示,因为在源代码中是通过float关键字来表示浮点数的。但是在讲到引用类型的String,Employee,FileInputStream等类型时,我使用了类或者接口(interface)的名字,而不是字符串,雇员或者文件输入流引用类型。而且在提及关系类型检查运算符时,instanceof表示如何在源代码中引用这个运算符。最后在谈到While循环语句时,不写成while循环语句,因为While表示语句的概念,而while是在源代码中表示该语句的关键字(其他语句也存在同样的情况)。虽然我努力遵循这些约定,但还有可能因为疏忽而出现例外。如果你遇到这样的情况,要明白我的目的是区分语言概念及其在源代码中的表示方法。Java语言规范Sun公司的Java语言规范(JavaLanguageSpecification,JLS)提供了最新的Java语言的关键字,这个规范可以从下面的网站下载:http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html。每次修改都是为了确保本书的内容与JLS一致。到哪里获取本书的源代码本书提供了丰富的源代码——源代码非常多以至于手工