Java基础入门及提高.pdf

4星(超过85%的资源)
所需积分/C币:10 2012-09-17 10:34:04 4.77MB PDF
19
收藏 收藏
举报

《Java基础入门及提高》,整理:yyc、spirit。PDF 格式,大小 4.8 MB,非影印版。 前言: 同人类任何语言一样,Java 为我们提供了一种表达思想的方式。如操作得当,同其他方式相比,随着问题变得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遗。不可将Java 简单想象成一系列特性的集合;如孤立地看,有些特性是没有任何意义的。只有在考虑“设计”、而非考虑简单的编码时,才可真正体会到Java 的强大。为了按这种方式理解Java,首先必须掌握它与编程的一些基本概念。本书讨论了编程问题、它们为何会成为问题以及Java 用以解决它们的方法。所以,我对每一章的解释都建立在如何用语言解
的问题。即使那些上课面带会心的微笑或者频频点头的学生,对 许多问题也存在认识上的混淆。在过去几年间的软件开发会议 上,由我主持C++分组讨论会(现在变成了Java讨论会)。有的 演讲人试图在很短的时间内向听众灌输过多的主题。所以到最后, 尽管听众的水平都还可以,而且提供的材料也很充足,但仍然损 失了一部分听众。这可能是由于问得太多了,但由于我是那些菜 取传统授课方式的人之一,所以很想使每个人都能跟上讲课进度。 有段时间,我编制了大量教学简报。经过不断的试验和修订(或 称反复〃,这是在Java程序设计中非常有用的一项技术),最后 成功地在一门课程中集成了从我的教学经验中总结出来的所有东 西—我在很长一段时间里都在使用。其中由一系列离散的、易于 消化的小步骤组成,而且每个小课程结束后都有一些适当的练习 我目前已在Java公开研讨会上公布了这一课程,大家可到 htp://w.Bruceeckel.com了解详情(对研讨会的介绍也以 CD-ROM的形式提供,具体信息可在同样的Web站点找到)。 从每一次研讨会收到的反馈都帮助我修改及重新制订学习材料的 重心,直到我最后认为它成为一个完善的教学载体为止。但本书 并非仅仅是一本教科书—我尝试在其中装入尽可能多的信息,并 按照主题进行了有序的分类。无论如何,这本书的主要宗旨是为 那些独立学习的人士服务,他们正准备深入一门新的程序设计语 言,而没有太大的可能参加此类专业研讨会。 3.目标 就象我的前一本书《 Think ing in c++》一样,这本书面向语言的 教授进行了良好的结构与组织。特别地,我的目标是建立一套有 序的机制,可帮助我在自己的研讨会上更好地进行语言教学。在 我思考书中的一章时,实际上是在想如何教好一堂课。我的目标 是得到一系列规模适中的教学模块,可以在合理的时间內教完。 随后是一些精心挑选的练习,可以在课堂上当即完成 在这本书中,我想达到的目标总结如下: (1)每一次都将教学内容向前推进一小步,便于读者在继续后面 的学习前消化前面的内容。 (2)采用的示例尽可能简短。当然,这样做有时会妨碍我解决ν现 实世界〃的问题。但我同时也发现对那些新手来说,如果他们能 理解每一个细节,那么一般会产生更大的学习兴趣。而假如他们 开始就被要解决的问题的深度和广度所震惊,那么一般都不 收到很好的学习效果。另外在实际教学过程中,对能够摘录的代 码数量是有严重限制的。另一方面,这样做无疑会有些人会批评 我采用了不真实的例子",但只要能起到良好的效果,我宁愿接 受这一指责。 (3)要揭示的特性按照我精心挑选的顺序依次岀场,而且尽可能 符合读者的思想历程。当然,我不可能永远都做到这一点;在那 些情况下,会给出一段简要的声明,指出这个问题。 (4)只把我认为有助于理解语言的东西介绍给读者,而不是把我 知道的一切东西都抖出来,这并非藏私。我认为信息的重要程度 是存在一个合理的层次的。有些情况是95%的程序员都永远不必 了解的。如强行学习,只会干扰他们的正常思维,从而加深语言 在他们面前表现出来的难度。以G语言为例,假如你能记住运算 符优先次序表(我从来记不住),那么就可以写出更“聪明〃的代 码。但再深入想一层,那也会使代码的读者/维护者感到困扰。 所以忘了那些次序吧,在拿不准的时候加上括号即可。 (5)每一节都有明确的学习重点,所以教学时间(以及练习的间 隔时间)非常短。这样做不仅能保持读者思想的活跃,也能使问 题更容易理解,对自己的学习产生更大的信心。 (6)提供一个坚实的基础,使读者能充分理解问题,以便更容易 转向一些更加困难的课程和书籍。 4.联机文档 由Sun微系统公司提供的Java语言和库(可免费下载)配套提供 了电子版的用户帮助手册,可用Web浏览器阅读。此外,由其他 厂商开发的几乎所有类似产品都有一套等价的文档系统。而目前 出版的与Java有关的几乎所有书籍都重复了这份文档。所以你要 么已经拥有了它,要么需要下载。所以除非特别必要,否则本书 不会重复那份文档的内容。因为一般地说,用Web浏览器查找与 类有关的资料比在书中查找方便得多(电子版的东西更新也快)。 只有在需要对文档进行补充,以便你能理解一个特定的例子时, 本书才会提供有关类的一些附加说明。 5.章节 本书在设计时认真考虑了人们学习Java语言的方式。在我授课 时,学生们的反映有效地帮助了我认识哪些部分是比较困难的, 需特别加以留意。我也曾经一次讲述了太多的问题,但得到的教 训是:假如包括了大量新特性,就需要对它们全部作出解释,而 这特别容易加深学生们的混淆。因此,我进行了大量努力,使这 本书一次尽可能地少涉及一些问题。 所以,我在书中的目标是让每一章都讲述一种语言特性,或者只 讲述少数几个相互关联的特性。这样一来,读者在转向下一主题 时,就能更容易地消化前面学到的知识。 下面列出对本书各章的一个简要说明,它们与我实际进行的课堂 教学是对应的。 (1)第1章:对象入门 这一章是对面向对象的程序设计(00P)的一个综述,其中包括对 N什么是对象〃之类的基本问题的回答,并讲述了接口与实现、抽 象与封装、消息与函数、继承与合成以及非常重要的多形性的概 念。这一章会向大家提出一些对象创建的基本问题,比如构建器、 对象存在于何处、创建好后把它们置于什么地方以及魔术般的垃 圾收集器(能够清除不再需要的对象)。要介绍的另一些问题还包 括通过违例实现的错误控制机制、反应灵敏的用户界面的多线程 处理以及连网和因特网等等。大家也会从中了解到是什么使得 Java如此特别,它为什么取得了这么大的成功,以及与面向对象 的分析与设计有关的问题。 (2)第2章:一切都是对象 本章将大家带到可以着手写自己的第一个Java程序的地方,所以 必须对一些基本概念作出解释,其中包括对象句柄〃的概念;怎 样创建一个对象;对基本数据类型和数组的一个介绍;作用域以 及垃圾收集器清除对象的方式;如何将Java中的所有东西都归为 种新数据类型(类),以及如何创建自己的类;函数、自变量以 及返回值;名字的可见度以及使用来自其他库的组件; static关 键字;注释和嵌入文档等等。 (3)第3章:控制程序流程 本章开始介绍起源于G和C艹+,由Java继承的所有运算符。除此 以外,还要学习运算符一些不易使人注意的问题,以及涉及造型 升迁以及优先次序的问题。随后要讲述的是基本的流程控制以及 选择运算,这些是几乎所有程序设计语言都具有的特性:用 if-else实现选择;用for和 while实现循环;用 break和 continue 以及Java的标签式 break和 cont i une(它们被认为是Java中N不 见的gogo〃)退出循环;以及用 switch实现另一种形式的选择 尽管这些与C和C++中见到的有一定的共通性,但多少存在一些 区别。除此以外,所有示例都是完整的Java示例,能使大家很快 地熟悉Java的外观。 (4)第4章:初始化和清除 本章开始介绍构建器,它的作用是担保初始化的正确实现。对构 建器的定义要涉及函数过载的概念(因为可能同时有几个构建 器)。随后要讨论的是清除过程,它并非肯定如想象的那么简单。 用完一个对象后,通常可以不必管它,垃圾收集器会自动介入, 释放由它占据的内存。这里详细探讨了垃圾收集器以及它的一些 特点。在这一章的最后,我们将更贴近地观察初始化过程:自动 成员初始化、指定成员初始化、初始化的顺序、 static(静态) 初始化以及数组初始化等等。 5)第5章:隐藏实现过程 本章要探讨将代码封装到一起的方式,以及在库的其他部分隐藏 时,为什么仍有一部分处于暴露状态。首先要讨论的是 package 和 i mpor t关键字,它们的作用是进行文件级的封装(打包)操作, 并允许我们构建由类构成的库(类库)。此时也会谈到目录路径和 文件名的问题。本章剩下的部分将讨论 publ ic, private以及 protected三个关键字、N友好〃访问的概念以及各种场合下不同 访问控制级的意义 (6)第6章:类再生 继承的概念是几乎所有00P语言中都占有重要的地位。它是对现 有类加以利用,并为其添加新功能的一种有效途径(同时可以修 改它,这是第7章的主题)通过继承来重复使用原有的代码时(再 生),一般需要保持"基础类〃不变,只是将这儿或那儿的东西串 联起来,以达到预期的效果。然而,继承并不是在现有类基础上 制造新类的唯一手段。通过合成",亦可将一个对象嵌入新类。 在这一章中,大家将学习在Java中重复使用代码的这两种方法, 以及具体如何运用。 (7)第7章:多形性 若由你自己来干,可能要花9个月的时间才能发现和理解多形性 的问题,这一特性实际是00P一个重要的基础。通过一些小的、 简单的例子,读者可知道如何通过继承来创建一系列类型,并通 过它们共有的基础类对那个系列中的对象进行操作。通过Java 的多形性概念,同一系列中的所有对象都具有了共通性。这意味 着我们编写的代码不必再依赖特定的类型信息。这使程序更易扩 展,包容力也更强。由此,程序的构建和代码的维护可以变得更 方便,付出的代价也会更低。此外,Java还通过接口"提供了设 置再生关系的第三种途径。这儿所谓的ν接口〃是对对象物理接 口〃一种纯粹的抽象。一旦理解了多形性的概念,接口的含义就 很容易解释了。本章也向大家介绍了Java1.的内部类〃 (8)第8章:对象的容纳 对一个非常简单的程序来说,它可能只拥有一个固定数量的对象, 而且对象的生存时间〃或者存在时间〃是已知的。但是通常,我 们的程序会在不定的时间创建新对象,只有在程序运行时才可了 解到它们的详情。此外,除非进入运行期,否则无法知道所需对 象的数量,甚至无法得知它们确切的类型。为解决这个常见的程 序设计问题,我们需要拥有一种能力,可在任何时间、任何地点 创建任何数量的对象。本章的宗旨便是探讨在使用对象的同时用 来容纳它们的一些Java工具:从简单的数组到复杂的集合(数据 结构),如 Vector和 Hashtable等。最后,我们还会深入讨论新 型和改进过的Java1.2集合库。 (9)第9章:违例差错控制 Java最基本的设计宗旨之一便是组织错误的代码不会真的运行 起来。编译器会尽可能捕获问题。但某些情况下,除非进入运行 期,否则问题是不会被发现的。这些问题要么属于编程错误,要 么则是一些自然的出错状况,它们只有在作为程序正常运行的 部分时才会成立。Java为此提供了丶违例控制〃机制,用于控制程 序运行时产生的一切问题。这一章将解释try、 catch、 throw、

...展开详情
试读 127P Java基础入门及提高.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
qq_18863291 很好 对我帮助很大
2015-06-24
回复
jmyywm 个人觉得一般吧
2015-04-27
回复
离家出走的鼠标垫 不怎么看的懂
2015-04-26
回复
rigous 很方便,都是些基础知识点,重拾java很有帮助
2015-03-05
回复
dyllq 非常棒的一本加密书籍
2015-02-05
回复
a306365372 确实不错但是滑动的时候容易错过要看的,搞成翻页的就好了
2015-01-20
回复
ycr40 没有目录导航,不方便
2014-11-27
回复
龙阳裂天 java适合初学者,以及从其他语言转java的人,挺好的
2014-10-16
回复
why0404 感谢分享。本以为是个简单版本,但是打开发现1K多页. 考验耐心。
2014-09-16
回复
psu0929 非常棒的一本加密书籍
2013-07-08
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

  • 至尊王者

关注 私信
上传资源赚钱or赚积分
最新推荐
Java基础入门及提高.pdf 10积分/C币 立即下载
1/127
Java基础入门及提高.pdf第1页
Java基础入门及提高.pdf第2页
Java基础入门及提高.pdf第3页
Java基础入门及提高.pdf第4页
Java基础入门及提高.pdf第5页
Java基础入门及提高.pdf第6页
Java基础入门及提高.pdf第7页
Java基础入门及提高.pdf第8页
Java基础入门及提高.pdf第9页
Java基础入门及提高.pdf第10页
Java基础入门及提高.pdf第11页
Java基础入门及提高.pdf第12页
Java基础入门及提高.pdf第13页
Java基础入门及提高.pdf第14页
Java基础入门及提高.pdf第15页
Java基础入门及提高.pdf第16页
Java基础入门及提高.pdf第17页
Java基础入门及提高.pdf第18页
Java基础入门及提高.pdf第19页
Java基础入门及提高.pdf第20页

试读结束, 可继续阅读

10积分/C币 立即下载 >