background image

  Java 基础及提高(完整版)
前言
同人类任何语言一样,Java 为我们提供了一种表达思想的方式。如操作得当,同其他方式
相比,随着问题变得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遗。
不可将 Java 简单想象成一系列特性的集合;如孤立地看,有些特性是没有任何意义的。只

有在考虑 设计 、而非考虑简单的编码时,才可真正体会到 Java 的强大。为了按这种方式
理解 Java,首先必须掌握它与编程的一些基本概念。本书讨论了编程问题、它们为何会成
为问题以及 Java 用以解决它们的方法。所以,我对每一章的解释都建立在如何用语言解决
一种特定类型的问题基础上。按这种方式,我希望引导您一步一步地进入 Java 的世界,使
其最终成为您最自然的一种语言。

——

贯穿本书,我试图在您的大脑里建立一个模型

或者说一个 知识结构 。这样可加深对

语言的理解。若遇到难解之处,应学会把它填入这个模型的对应地方,然后自行演绎出答
案。事实上,学习任何语言时,脑海里有一个现成的知识结构往往会起到事半功倍的效果。

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

数/宏是什么,知道象 If”

这样的控制语句,也知道象 while”这样的循环结构。注意这些

东西在大量语言里都是类似的。假如您学过一种宏语言,或者用过 Perl 之类的工具,那么
它们的基本概念并无什么区别。总之,只要能习惯基本的编程概念,就可顺利阅读本书。
当然,C/C++程序员在阅读时能占到更多的便宜。但即使不熟悉 C,一样不要把自己排除
在外(尽管以后的学习要付出更大的努力)。我会讲述面向对象编程的概念,以及 Java 的
基本控制机制,所以不用担心自己会打不好基础。况且,您需要学习的第一类知识就会涉
及到基本的流程控制语句。
尽管经常都会谈及 C 和 C++语言的一些特性,但并没有打算使它们成为内部参考,而是
想帮助所有程序员都能正确地看待那两种语言。毕竟,Java 是从它们那里衍生出来的。我
将试着尽可能地简化这些引用和参考,并合理地解释一名非 C/C++程序员通常不太熟悉
的内容。

2. Java 的学习
在我第一本书《Using C++》面市的几乎同一时间(Osborne/McGraw-Hill 于 1989 年出版),
我开始教授那种语言。程序设计语言的教授已成为我的专业。自 1989 年以来,我便在世界
各地见过许多昏昏欲睡、满脸茫然以及困惑不解的面容。开始在室内面向较少的一组人授
课以后,我从作业中发现了一些特别的问题。即使那些上课面带会心的微笑或者频频点头

的学生,对许多问题也存在认识上的混淆。在过去几年间的 软件开发会议 上,由我主持
C++分组讨论会(现在变成了 Java 讨论会)。有的演讲人试图在很短的时间内向听众灌输
过多的主题。所以到最后,尽管听众的水平都还可以,而且提供的材料也很充足,但仍然
损失了一部分听众。这可能是由于问得太多了,但由于我是那些采取传统授课方式的人之
一,所以很想使每个人都能跟上讲课进度。

有段时间,我编制了大量教学简报。经过不断的试验和修订(或称 反复 ,这是在 Java
程序设计中非常有用的一项技术),最后成功地在一门课程中集成了从我的教学经验中

——

总结出来的所有东西

我在很长一段时间里都在使用。其中由一系列离散的、易于消化

的小步骤组成,而且每个小课程结束后都有一些适当的练习。我目前已在 Java 公开研讨会
上公布了这一课程,大家可到 http://www.BruceEckel.com 了解详情(对研讨会的介绍也以
CD-ROM 的形式提供,具体信息可在同样的 Web 站点找到)。