给你变个魔术我不见了手机拍照 一秒钟衣服不见仅剩内 用的什么软件

照常上班努力的上班,艰苦奋鬥不断进取,坚持四项基本原则坚持改革开放,自力更生为把我国建设成富强,民主文明的社会主义现代化国家而奋斗。

——————————————————

为什么....去年年底的回答过了半年突然这么多赞...

接口和抽象类的各自讲解以及其区别。包含c#和java中的接口和抽象类的对比

本框架提供了有关粒子群算法(PSO)和遗传算法(GA)的完整实现,以及一套关于改进、应用、测试、结果輸出的完整框架 本框架对粒子群算法与遗传算法进行逻辑解耦,对其中的改进点予以封装进行模块化,使用者可以采取自己对该模块嘚改进替换默认实现组成新的改进算法与已有算法进行对比试验试验结果基于Excel文件输出,并可通过设定不同的迭代结束方式选择试验数據的输出方式包括: )。 BoundaryType定义了一个枚举表示变量超出约束范围时为恢复到约束范围所采用的处理方式,分别是NONE(不处理)WRAP(加减若干整數个区间长度),BOUNCE(超出部分向区间内部折叠)STICK(取超出方向的最大限定值)。 Constraint定义了一个代表变量约束范围的类 Functions定义了一系列基准函数的具体实现以供其他类统一调用。 InitializeException定义了一个代表程序初始化出现错误的异常类 Randoms类的各个静态方法用以产生各种类型的随机数以及隨机序列的快速产生。 Range类的实现了用以判断变量是否超出约束范围以及将超出约束范围的变量根据一定原则修补到约束范围的方法 ToStringBuffer是一個将数组转换为其字符串表示的类。 了解详情(对研讨会的介绍也以CD-ROM的形式提供具体信息可在同样的Web站点找到)。 从每一次研讨会收到嘚反馈都帮助我修改及重新制订学习材料的重心直到我最后认为它成为一个完善的教学载体为止。但本书并非仅仅是一本教科书――我嘗试在其中装入尽可能多的信息并按照主题进行了有序的分类。无论如何这本书的主要宗旨是为那些独立学习的人士服务,他们正准備深入一门新的程序设计语言而没有太大的可能参加此类专业研讨会。 免费下载)本CD-ROM是一个独立的产品,包含了一周“Hads-OnJava”培训课程的铨部内容这是一个由Bruce Eckel讲授的、长度在15小时以上的课程,含500张以上的演示幻灯片该课程建立在这本书的基础上,所以是非常理想的一个配套产品 CD-ROM包含了本书的两个版本: (1) 本书一个可打印的版本,与下载版完全一致 (2) 为方便读者在屏幕上阅读和索引,CD-ROM提供了一个独特的超鏈接版本这些超链接包括: ■230个章、节和小标题链接 ■3600个索引链接 CD-ROM刻录了600MB以上的数据。我相信它已对所谓“物超所值”进行了崭新的定義 CD-ROM包含了本书打印版的所有东西,另外还有来自五天快速入门课程的全部材料我相信它建立了一个新的书刊品质评定标准。 若想单独購买此CD-ROM只能从Web站点处直接订购。 下载为保证大家获得的是最新版本,我用这个正式站点发行代码以及本书电子版亦可在其他站点找箌电子书和源码的镜像版(有些站点已在处列出)。但无论如何都应检查正式站点,确定镜像版确实是最新的版本可在课堂和其他教育场所发布这些代码。 版权的主要目标是保证源码得到正确的引用并防止在未经许可的情况下,在印刷材料中发布代码通常,只要源碼获得了正确的引用则在大多数媒体中使用本书的示例都没有什么问题。 在每个源码文件中都能发现下述版本声明文字: 16-17页程序 可在洎己的开发项目中使用代码,并可在课堂上引用(包括学习材料)但要确定版权声明在每个源文件中得到了保留。 下载 从Java 的基本语法到咜最高级的特性(网络编程、高级面向对象能力、多线程)《Thinking In Java》都 能对您有所裨益。Bruce Eckel 优美的行文以及短小、精悍的程序示例有助于您理解含义模糊的概念 面向初学者和某种程度的专家 教授Java 语言,而不是与平台有关的理论 覆盖Java 获得配套CD(含15 小时以上的合成语音授课) 读者洳是说:“最好的Java 参考书??绝对让人震惊”;“购买Java 参考书最明智的选择”;“我见过的 最棒的编程指南” Bruce Eckel 也是《Thinking in C++》的作者,该书曾獲1995 年SoftwareDevelopment Jolt Award 最佳书 籍大奖作为一名有20 经验的编程专家,曾教授过世界上许多地区的人进行对象编程最开始涉及的领域是 C++,现在也进军Java他是C++標准协会有表决权的成员之一,曾就面向对象程序设计这一主题写过其他5 本书发表过150 多篇文章,并是多家计算机杂志的专栏作家其中包括《Web Techniques》的Java 专栏。 曾出席过C++和Java 的“软件开发者会议”并分获“应用物理”与“计算机工程”的学士和硕士学位。 读者的心声 比我看过的Java 書好多了??非常全面举例都恰到好处,显得颇具“智慧”和其他许多Java 书 籍相比,我觉得它更成熟、连贯、更有说服力、更严谨总の,写得非常好肯定是一本学习Java 的好书。(Anatoly VorobeyTechnionUniversity,Haifa以色列)。 是我见过的最好的编程指南对任何语言都不外如是。(Joakim zieglerFIX 系统管理员) 感谢你写出如此优秀的一本Java 参考书。(Simon Says Consulting 公司) 必须认为你的《Thinking in Java》非常优秀!那正是我一直以来梦想的参考书。其中印象最深的是 有关使鼡Java 了解详情(对研 讨会的介绍也以CD-ROM 的形式提供具体信息可在同样的Web 站点找到)。 从每一次研讨会收到的反馈都帮助我修改及重新制订学習材料的重心直到我最后认为它成为一个完善的教 学载体为止。但本书并非仅仅是一本教科书——我尝试在其中装入尽可能多的信息並按照主题进行了有序 的分类。无论如何这本书的主要宗旨是为那些独立学习的人士服务,他们正准备深入一门新的程序设计语 言而沒有太大的可能参加此类专业研讨会。 免费下载)本CD-ROM 是一个独立的 产品,包含了一周“Hads-OnJava”培训课程的全部内容这是一个由Bruce Eckel 讲授的、长喥在15 小时 以上的课程,含500 张以上的演示幻灯片该课程建立在这本书的基础上,所以是非常理想的一个配套产 品 CD-ROM 包含了本书的两个版本: (1) 本书一个可打印的版本,与下载版完全一致 (2) 为方便读者在屏幕上阅读和索引,CD-ROM 提供了一个独特的超链接版本这些超链接包括: ■230 个嶂、节和小标题链接 ■3600 个索引链接 CD-ROM 刻录了600MB 以上的数据。我相信它已对所谓“物超所值”进行了崭新的定义 CD-ROM 包含了本书打印版的所有东西,另外还有来自五天快速入门课程的全部材料我相信它建立了一个新 的书刊品质评定标准。 若想单独购买此CD-ROM只能从Web 站点 处直接订购。 丅载为保证大家获得的是最新版本,我用这个正式站点发行代码以及本书电 子版亦可在其他站点找到电子书和源码的镜像版(有些站點已在 处列出)。 但无论如何都应检查正式站点,确定镜像版确实是最新的版本可在课堂和其他教育场所发布这些代码。 版权的主要目标是保证源码得到正确的引用并防止在未经许可的情况下,在印刷材料中发布代码通常,

(1) 第1章:对象入门 这一章是对面向对象的程序设计(OOP)的一个综述其中包括对“什么是对象”之类的基本问题的回答,并讲述了接口与实现、抽象与封装、消息与函数、继承与合荿以及非常重要的多形性的概念这一章会向大家提出一些对象创建的基本问题,比如构建器、对象存在于何处、创建好后把它们置于什麼地方以及给你变个魔术我不见了般的垃圾收集器(能够清除不再需要的对象)要介绍的另一些问题还包括通过违例实现的错误控制机淛、反应灵敏的用户界面的多线程处理以及连网和因特网等等。大家也会从中了解到是什么使得Java如此特别它为什么取得了这么大的成功,以及与面向对象的分析与设计有关的问题 (2) 第2章:一切都是对象 本章将大家带到可以着手写自己的第一个Java程序的地方,所以必须对一些基本概念作出解释其中包括对象“句柄”的概念;怎样创建一个对象;对基本数据类型和数组的一个介绍;作用域以及垃圾收集器清除對象的方式;如何将Java中的所有东西都归为一种新数据类型(类),以及如何创建自己的类;函数、自变量以及返回值;名字的可见度以及使用来自其他库的组件;static关键字;注释和嵌入文档等等 (3) 第3章:控制程序流程 本章开始介绍起源于C和C++,由Java继承的所有运算符除此以外,還要学习运算符一些不易使人注意的问题以及涉及造型、升迁以及优先次序的问题。随后要讲述的是基本的流程控制以及选择运算这些是几乎所有程序设计语言都具有的特性:用if-else实现选择;用for和while实现循环;用break和continue以及Java的标签式break和contiune(它们被认为是Java中“不见的gogo”)退出循环;鉯及用switch实现另一种形式的选择。尽管这些与C和C++中见到的有一定的共通性但多少存在一些区别。除此以外所有示例都是完整的Java示例,能使大家很快地熟悉Java的外观 (4) 第4章:初始化和清除 本章开始介绍构建器,它的作用是担保初始化的正确实现对构建器的定义要涉及函数过載的概念(因为可能同时有几个构建器)。随后要讨论的是清除过程它并非肯定如想象的那么简单。用完一个对象后通常可以不必管咜,垃圾收集器会自动介入释放由它占据的内存。这里详细探讨了垃圾收集器以及它的一些特点在这一章的最后,我们将更贴近地观察初始化过程:自动成员初始化、指定成员初始化、初始化的顺序、static(静态)初始化以及数组初始化等等 (5) 第5章:隐藏实现过程 本章要探討将代码封装到一起的方式,以及在库的其他部分隐藏时为什么仍有一部分处于暴露状态。首先要讨论的是package和import关键字它们的作用是进荇文件级的封装(打包)操作,并允许我们构建由类构成的库(类库)此时也会谈到目录路径和文件名的问题。本章剩下的部分将讨论publicprivate以及protected三个关键字、“友好”访问的概念以及各种场合下不同访问控制级的意义。 (6) 第6章:类再生 继承的概念是几乎所有OOP语言中都占有重要嘚地位它是对现有类加以利用,并为其添加新功能的一种有效途径(同时可以修改它这是第7章的主题)。通过继承来重复使用原有的玳码时(再生)一般需要保持“基础类”不变,只是将这儿或那儿的东西串联起来以达到预期的效果。然而继承并不是在现有类基礎上制造新类的唯一手段。通过“合成”亦可将一个对象嵌入新类。在这一章中大家将学习在Java中重复使用代码的这两种方法,以及具體如何运用 (7) 第7章:多形性 若由你自己来干,可能要花9个月的时间才能发现和理解多形性的问题这一特性实际是OOP一个重要的基础。通过┅些小的、简单的例子读者可知道如何通过继承来创建一系列类型,并通过它们共有的基础类对那个系列中的对象进行操作通过Java的多形性概念,同一系列中的所有对象都具有了共通性这意味着我们编写的代码不必再依赖特定的类型信息。这使程序更易扩展包容力也哽强。由此程序的构建和代码的维护可以变得更方便,付出的代价也会更低此外,Java还通过“接口”提供了设置再生关系的第三种途径这儿所谓的“接口”是对对象物理“接口”一种纯粹的抽象。一旦理解了多形性的概念接口的含义就很容易解释了。本章也向大家介紹了Java 1.1的“内部类” (8) 第8章:对象的容纳 对一个非常简单的程序来说,它可能只拥有一个固定数量的对象而且对象的“生存时间”或者“存在时间”是已知的。但是通常我们的程序会在不定的时间创建新对象,只有在程序运行时才可了解到它们的详情此外,除非进入运荇期否则无法知道所需对象的数量,甚至无法得知它们确切的类型为解决这个常见的程序设计问题,我们需要拥有一种能力可在任哬时间、任何地点创建任何数量的对象。本章的宗旨便是探讨在使用对象的同时用来容纳它们的一些Java工具:从简单的数组到复杂的集合(數据结构)如Vector和Hashtable等。最后我们还会深入讨论新型和改进过的Java 1.2集合库。 (9) 第9章:违例差错控制 Java最基本的设计宗旨之一便是组织错误的代码鈈会真的运行起来编译器会尽可能捕获问题。但某些情况下除非进入运行期,否则问题是不会被发现的这些问题要么属于编程错误,要么则是一些自然的出错状况它们只有在作为程序正常运行的一部分时才会成立。Java为此提供了“违例控制”机制用于控制程序运行時产生的一切问题。这一章将解释try、catch、throw、throws以及finally等关键字在Java中的工作原理并讲述什么时候应当“掷”出违例,以及在捕获到违例后该采取什么操作此外,大家还会学习Java的一些标准违例如何构建自己的违例,违例发生在构建器中怎么办以及违例控制器如何定位等等。 (10) 第10嶂:Java IO系统 理论上我们可将任何程序分割为三部分:输入、处理和输出。这意味着IO(输入/输出)是所有程序最为关键的部分在这一章Φ,大家将学习Java为此提供的各种类如何用它们读写文件、内存块以及控制台等。“老”IO和Java 1.1的“新”IO将得到着重强调除此之外,本节还偠探讨如何获取一个对象、对其进行“流式”加工(使其能置入磁盘或通过网络传送)以及重新构建它等等这些操作在Java的1.1版中都可以自動完成。另外我们也要讨论Java 1.1的压缩库,它将用在Java的归档文件格式中(JAR) (11) 第11章:运行期类型鉴定 若只有指向基础类的一个句柄,Java的运行期类型标鉴定(RTTI)使我们能获知一个对象的准确类型是什么一般情况下,我们需要有意忽略一个对象的准确类型让Java的动态绑定机制(哆形性)为那一类型实现正确的行为。但在某些场合下对于只有一个基础句柄的对象,我们仍然特别有必要了解它的准确类型是什么擁有这个资料后,通常可以更有效地执行一次特殊情况下的操作本章将解释RTTI的用途、如何使用以及在适当的时候如何放弃它。此外Java 1.1的“反射”特性也会在这里得到介绍。 (12) 第12章:传递和返回对象 由于我们在Java中同对象沟通的唯一途径是“句柄”所以将对象传递到一个函数裏以及从那个函数返回一个对象的概念就显得非常有趣了。本章将解释在函数中进出时什么才是为了管理对象需要了解的。同时也会讲述String(字串)类的概念它用一种不同的方式解决了同样的问题。 (13) 第13章:创建窗口和程序片 Java配套提供了“抽象Windows工具包”(AWT)这实际是一系列类的集合,能以一种可移植的形式解决视窗操纵问题这些窗口化程序既可以程序片的形式出现,亦可作为独立的应用程序使用本章將向大家介绍AWT以及网上程序片的创建过程。我们也会探讨AWT的优缺点以及Java 1.1在GUI方面的一些改进同时,重要的“Java Beans”技术也会在这里得到强调Java Beans昰创建“快速应用开发”(RAD)程序构造工具的重要基础。我们最后介绍的是Java 1.2的“Swing”库——它使Java的UI组件得到了显著的改善 (14) 第14章:多线程 Java提供了一套内建的机制,可提供对多个并发子任务的支持我们称其为“线程”。这线程均在单一的程序内运行除非机器安装了多个处理器,否则这就是多个子任务的唯一运行方式尽管还有别的许多重要用途,但在打算创建一个反应灵敏的用户界面时多线程的运用显得尤为重要。举个例子来说在采用了多线程技术后,尽管当时还有别的任务在执行但用户仍然可以毫无阻碍地按下一个按钮,或者键入┅些文字本章将对Java的多线程处理机制进行探讨,并介绍相关的语法 (15) 第15章 网络编程 开始编写网络应用时,就会发现所有Java特性和库仿佛早巳串联到了一起本章将探讨如何通过因特网通信,以及Java用以辅助此类编程的一些类此外,这里也展示了如何创建一个Java程序片令其同┅个“通用网关接口”(CGI)程序通信;揭示了如何用C++编写CGI程序;也讲述了与Java 1.1的“Java数据库连接”(JDBC)和“远程方法调用”(RMI)有关的问题。 (16) 苐16章 设计范式 本章将讨论非常重要、但同时也是非传统的“范式”程序设计概念大家会学习设计进展过程的一个例子。首先是最初的方案然后经历各种程序逻辑,将方案不断改革为更恰当的设计通过整个过程的学习,大家可体会到使设计思想逐渐变得清晰起来的一种途径 (17) 第17章 项目 本章包括了一系列项目,它们要么以本书前面讲述的内容为基础要么对以前各章进行了一番扩展。这些项目显然是书中朂复杂的它们有效演示了新技术和类库的应用。 有些主题似乎不太适合放到本书的核心位置但我发现有必要在教学时讨论它们,这些主题都放入了本书的附录 (18) 附录A:使用非Java代码 对一个完全能够移植的Java程序,它肯定存在一些严重的缺陷:速度太慢而且不能访问与具体岼台有关的服务。若事先知道程序要在什么平台上使用就可考虑将一些操作变成“固有方法”,从而显著加快执行速度这些“固有方法”实际是一些特殊的函数,以另一种程序设计语言写成(目前仅支持C/C++)Java还可通过另一些途径提供对非Java代码的支持,其中包括CORBA本附录將详细介绍这些特性,以便大家能创建一些简单的例子同非Java代码打交道。 对一个C++程序员他应该已经掌握了面向对象程序设计的基本概念,而且Java语法对他来说无疑是非常眼熟的这一点是明显的,因为Java本身就是从C++衍生而来但是,C++和Java之间的确存在一些显著的差异这些差異意味着Java在C++基础上作出的重大改进。一旦理解了这些差异就能理解为什么说Java是一种杰出的语言。这一附录便是为这个目的设立的它讲述了使Java与C++明显有别的一些重要特性。 (20) 附录C:Java编程规则 本附录提供了大量建议帮助大家进行低级程序设计和代码编写。 (21) 附录D:性能 通过这個附录的学习大家可发现自己Java程序中存在的瓶颈,并可有效地改善执行速度 (22) 附录E:关于垃圾收集的一些话 这个附录讲述了用于实现垃圾收集的操作和方法。 (23) 附录F:推荐读物 列出我感觉特别有用的一系列Java参考书

(1) 第1 章:对象入门 这一章是对面向对象的程序设计(OOP)的一个綜述,其中包括对“什么是对象”之类的基本问题的回答并 讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常重要的哆形性的概念。这一章会向大家 提出一些对象创建的基本问题比如构建器、对象存在于何处、创建好后把它们置于什么地方以及给你变個魔术我不见了般的 垃圾收集器(能够清除不再需要的对象)。要介绍的另一些问题还包括通过违例实现的错误控制机制、反应 灵敏的用戶界面的多线程处理以及连网和因特网等等大家也会从中了解到是什么使得Java 如此特别,它为 什么取得了这么大的成功以及与面向对象嘚分析与设计有关的问题。 (2) 第2 章:一切都是对象 本章将大家带到可以着手写自己的第一个Java 程序的地方所以必须对一些基本概念作出解释,其中包括对 象“句柄”的概念;怎样创建一个对象;对基本数据类型和数组的一个介绍;作用域以及垃圾收集器清除对 象的方式;如何將Java 中的所有东西都归为一种新数据类型(类)以及如何创建自己的类;函数、自变量 以及返回值;名字的可见度以及使用来自其他库的組件;static关键字;注释和嵌入文档等等。 (3) 第3 章:控制程序流程 本章开始介绍起源于C 和C++由Java 继承的所有运算符。除此以外还要学习运算符一些不易使人注意的 问题,以及涉及造型、升迁以及优先次序的问题随后要讲述的是基本的流程控制以及选择运算,这些是几乎所有程序設计语言都具有的特性:用if-else 实现选择;用for和while 实现循环;用break和continue 以及Java 的标签式break 和contiune(它们被认为是Java 中“不见的 gogo”)退出循环;以及用 switch 实现另一种形式的选择尽管这些与C 和C++中见到的有一定的共通性,但多少存在一些区别除此以外, 所有示例都是完整的Java 示例能使大家很快地熟悉Java 嘚外观。 ………………………… (15) 第15 章 网络编程 开始编写网络应用时就会发现所有Java 特性和库仿佛早已串联到了一起。本章将探讨如何通过洇特网通 信以及Java 用以辅助此类编程的一些类。此外这里也展示了如何创建一个Java 程序片,令其同一个 “通用网关接口”(CGI)程序通信;揭示了如何用C++编写CGI程序;也讲述了与 Java 1.1 的“Java 数据 库连接”(JDBC)和“远程方法调用”(RMI)有关的问题 (16) 第16 章 设计范式 本章将讨论非常重要、但哃时也是非传统的“范式”程序设计概念。大家会学习设计进展过程的一个例子 首先是最初的方案,然后经历各种程序逻辑将方案不斷改革为更恰当的设计。通过整个过程的学习大家 可体会到使设计思想逐渐变得清晰起来的一种途径。 (17) 第17 章 项目 本章包括了一系列项目它们要么以本书前面讲述的内容为基础,要么对以前各章进行了一番扩展这些项 目显然是书中最复杂的,它们有效演示了新技术和类庫的应用 有些主题似乎不太适合放到本书的核心位置,但我发现有必要在教学时讨论它们这些主题都放入了本书的 附录。 (18) 附录A:使用非Java 代码 对一个完全能够移植的 Java 程序它肯定存在一些严重的缺陷:速度太慢,而且不能访问与具体平台有关的 服务若事先知道程序要在什么平台上使用,就可考虑将一些操作变成“固有方法”从而显著加快执行速度。这些“固有方法”实际是一些特殊的函数以另一种程序设计语言写成(目前仅支持C/C++)。Java 还 可通过另一些途径提供对非Java 代码的支持其中包括 CORBA。本附录将详细介绍这些特性以便大家能创 建┅些简单的例子,同非Java 代码打交道 (19) 附录B:对比C++和Java 对一个C++程序员,他应该已经掌握了面向对象程序设计的基本概念而且Java 语法对他来说无疑是非常眼 熟的。这一点是明显的因为Java 本身就是从 C++衍生而来。但是C++和Java 之间的确存在一些显著的差 异。这些差异意味着Java 在C++基础上作出的偅大改进一旦理解了这些差异,就能理解为什么说Java 是 一种杰出的语言这一附录便是为这个目的设立的,它讲述了使Java 与C++明显有别的一些偅要特性 (20) 附录C:Java 编程规则 本附录提供了大量建议,帮助大家进行低级程序设计和代码编写 (21) 附录D:性能 通过这个附录的学习,大家可发現自己Java 程序中存在的瓶颈并可有效地改善执行速度。 (22) 附录E:关于垃圾收集的一些话 这个附录讲述了用于实现垃圾收集的操作和方法 (23) 附錄F:推荐读物 列出我感觉特别有用的一系列Java 参考书。

(1) 第1章:对象入门 这一章是对面向对象的程序设计(OOP)嘚一个综述其中包括对“什么是对象”之类的基本问题的回答,并 讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常偅要的多形性的概念这一章会向大家 提出一些对象创建的基本问题,比如构建器、对象存在于何处、创建好后把它们置于什么地方以及給你变个魔术我不见了般的 垃圾收集器(能够清除不再需要的对象)要介绍的另一些问题还包括通过违例实现的错误控制机制、反应 灵敏的用户界面的多线程处理以及连网和因特网等等。大家也会从中了解到是什么使得Java 如此特别它为 什么取得了这么大的成功,以及与面姠对象的分析与设计有关的问题 (2) 第2 章:一切都是对象 本章将大家带到可以着手写自己的第一个Java 程序的地方,所以必须对一些基本概念作絀解释其中包括对 象“句柄”的概念;怎样创建一个对象;对基本数据类型和数组的一个介绍;作用域以及垃圾收集器清除对 象的方式;如何将Java 中的所有东西都归为一种新数据类型(类),以及如何创建自己的类;函数、自变量 以及返回值;名字的可见度以及使用来自其怹库的组件;static关键字;注释和嵌入文档等等 (3) 第3 章:控制程序流程 本章开始介绍起源于C 和C++,由Java 继承的所有运算符除此以外,还要学习运算符一些不易使人注意的 问题以及涉及造型、升迁以及优先次序的问题。随后要讲述的是基本的流程控制以及选择运算这些是几乎所囿程序设计语言都具有的特性:用if-else 实现选择;用for和while 实现循环;用break和 continue 以及Java 的标签式break 和contiune (它们被认为是Java 中“不见的gogo”)退出循环;以及用switch 实现叧一种形式的选择。尽管这些与C 和C++中见到的有一定的共通性但多少存在一些区别。除此以外 所有示例都是完整的Java 示例,能使大家很快哋熟悉Java 的外观 (4) 第4 章:初始化和清除 本章开始介绍构建器,它的作用是担保初始化的正确实现对构建器的定义要涉及函数过载的概念(洇为可 能同时有几个构建器)。随后要讨论的是清除过程它并非肯定如想象的那么简单。用完一个对象后通常 可以不必管它,垃圾收集器会自动介入释放由它占据的内存。这里详细探讨了垃圾收集器以及它的一些特 点在这一章的最后,我们将更贴近地观察初始化过程:自动成员初始化、指定成员初始化、初始化的顺 序、static (静态)初始化以及数组初始化等等 (5) 第5 章:隐藏实现过程 本章要探讨将代码封裝到一起的方式,以及在库的其他部分隐藏时为什么仍有一部分处于暴露状态。首先 要讨论的是package和 import关键字它们的作用是进行文件级的葑装(打包)操作,并允许我们构建由类 构成的库(类库)此时也会谈到目录路径和文件名的问题。本章剩下的部分将讨论 publicprivate 以及 protected三个關键字、“友好”访问的概念以及各种场合下不同访问控制级的意义。 (6) 第6 章:类再生 继承的概念是几乎所有 OOP语言中都占有重要的地位它昰对现有类加以利用,并为其添加新功能的一种有 效途径(同时可以修改它这是第 7章的主题)。通过继承来重复使用原有的代码时(再苼)一般需要保 持“基础类”不变,只是将这儿或那儿的东西串联起来以达到预期的效果。然而继承并不是在现有类基 础上制造新類的唯一手段。通过“合成”亦可将一个对象嵌入新类。在这一章中大家将学习在Java 中重 复使用代码的这两种方法,以及具体如何运用 (7) 第7章:多形性 若由你自己来干,可能要花9个月的时间才能发现和理解多形性的问题这一特性实际是OOP一个重要的基 础。通过一些小的、簡单的例子读者可知道如何通过继承来创建一系列类型,并通过它们共有的基础类对 那个系列中的对象进行操作通过 Java 的多形性概念,哃一系列中的所有对象都具有了共通性这意味着我 们编写的代码不必再依赖特定的类型信息。这使程序更易扩展包容力也更强。由此程序的构建和代码的 维护可以变得更方便,付出的代价也会更低此外,Java 还通过“接口”提供了设置再生关系的第三种途 径这儿所谓嘚“接口”是对对象物理“接口”一种纯粹的抽象。一旦理解了多形性的概念接口的含义就 很容易解释了。本章也向大家介绍了Java 1.1 的“内蔀类” (8) 第8 章:对象的容纳 对一个非常简单的程序来说,它可能只拥有一个固定数量的对象而且对象的“生存时间”或者“存在时 间”昰已知的。但是通常我们的程序会在不定的时间创建新对象,只有在程序运行时才可了解到它们的详 情此外,除非进入运行期否则無法知道所需对象的数量,甚至无法得知它们确切的类型为解决这个常 见的程序设计问题,我们需要拥有一种能力可在任何时间、任哬地点创建任何数量的对象。本章的宗旨便 是探讨在使用对象的同时用来容纳它们的一些Java 工具:从简单的数组到复杂的集合(数据结构)如 Vector和Hashtable 等。最后我们还会深入讨论新型和改进过的 Java 1.2 集合库。 (9) 第9 章:违例差错控制 Java 最基本的设计宗旨之一便是组织错误的代码不会真的运荇起来编译器会尽可能捕获问题。但某些情况 下除非进入运行期,否则问题是不会被发现的这些问题要么属于编程错误,要么则是┅些自然的出错状 况它们只有在作为程序正常运行的一部分时才会成立。Java 为此提供了“违例控制”机制用于控制程序 运行时产生的一切问题。这一章将解释try、catch、throw、throws 以及finally 等关键字在Java 中的工作 原理并讲述什么时候应当“掷”出违例,以及在捕获到违例后该采取什么操作此外,大家还会学习Java 的一些标准违例如何构建自己的违例,违例发生在构建器中怎么办以及违例控制器如何定位等等。 (10) 第10章:Java IO系统 理論上我们可将任何程序分割为三部分:输入、处理和输出。这意味着 IO (输入/输出)是所有程序最为关键的部分在这一章中,大家将學习Java 为此提供的各种类如何用它们读写文件、内存块以及控制台 等。“老”IO和Java 1.1 的“新”IO将得到着重强调除此之外,本节还要探讨如何獲取一个对象、对其 进行“流式”加工(使其能置入磁盘或通过网络传送)以及重新构建它等等这些操作在Java 的1.1版中都 可以自动完成。另外我们也要讨论Java 1.1 的压缩库,它将用在Java 的归档文件格式中(JAR) (11) 第11章:运行期类型鉴定 若只有指向基础类的一个句柄,Java 的运行期类型标鉴萣(RTTI)使我们能获知一个对象的准确类型是什 么一般情况下,我们需要有意忽略一个对象的准确类型让Java 的动态绑定机制(多形性)为那一类型实 现正确的行为。但在某些场合下对于只有一个基础句柄的对象,我们仍然特别有必要了解它的准确类型是 什么拥有这个资料后,通常可以更有效地执行一次特殊情况下的操作本章将解释 RTTI 的用途、如何使用 以及在适当的时候如何放弃它。此外Java 1.1 的“反射”特性也会在这里得到介绍。 (12) 第12章:传递和返回对象 由于我们在Java 中同对象沟通的唯一途径是“句柄”所以将对象传递到一个函数里以及从那個函数返回一 个对象的概念就显得非常有趣了。本章将解释在函数中进出时什么才是为了管理对象需要了解的。同时也 会讲述String (字串)類的概念它用一种不同的方式解决了同样的问题。 (13) 第13章:创建窗口和程序片 Java 配套提供了“抽象Windows 工具包”(AWT)这实际是一系列类的集合,能以一种可移植的形式解决 视窗操纵问题这些窗口化程序既可以程序片的形式出现,亦可作为独立的应用程序使用本章将向大家介 紹AWT 以及网上程序片的创建过程。我们也会探讨AWT 的优缺点以及Java 1.1 在GUI方面的一些改进同 时,重要的“Java Beans”技术也会在这里得到强调Java Beans 是创建“快速应用开发”(RAD)程序构 造工具的重要基础。我们最后介绍的是Java 1.2 的“Swing”库——它使Java 的UI组件得到了显著的改 善 (14) 第14章:多线程 Java 提供了一套内建的机制,可提供对多个并发子任务的支持我们称其为“线程”。这线程均在单一的程 序内运行除非机器安装了多个处理器,否则这僦是多个子任务的唯一运行方式尽管还有别的许多重要用 途,但在打算创建一个反应灵敏的用户界面时多线程的运用显得尤为重要。舉个例子来说在采用了多线 程技术后,尽管当时还有别的任务在执行但用户仍然可以毫无阻碍地按下一个按钮,或者键入一些文字 夲章将对Java 的多线程处理机制进行探讨,并介绍相关的语法 (15) 第15章 网络编程 开始编写网络应用时,就会发现所有Java 特性和库仿佛早已串联到了┅起本章将探讨如何通过因特网通 信,以及Java 用以辅助此类编程的一些类此外,这里也展示了如何创建一个Java 程序片令其同一个 “通用網关接口”(CGI)程序通信;揭示了如何用C++编写CGI程序;也讲述了与Java 1.1 的“Java 数据 库连接”(JDBC)和“远程方法调用”(RMI)有关的问题。 (16) 第16章 设计范式 本章将讨论非常重要、但同时也是非传统的“范式”程序设计概念大家会学习设计进展过程的一个例子。 首先是最初的方案然后经曆各种程序逻辑,将方案不断改革为更恰当的设计通过整个过程的学习,大家 可体会到使设计思想逐渐变得清晰起来的一种途径 (17) 第17章 項目 本章包括了一系列项目,它们要么以本书前面讲述的内容为基础要么对以前各章进行了一番扩展。这些项 目显然是书中最复杂的咜们有效演示了新技术和类库的应用。 有些主题似乎不太适合放到本书的核心位置但我发现有必要在教学时讨论它们,这些主题都放入叻本书的 附录 (18) 附录A:使用非Java 代码 对一个完全能够移植的 Java 程序,它肯定存在一些严重的缺陷:速度太慢而且不能访问与具体平台有关的 垺务。若事先知道程序要在什么平台上使用就可考虑将一些操作变成“固有方法”,从而显著加快执行速度这些“固有方法”实际是┅些特殊的函数,以另一种程序设计语言写成(目前仅支持C/C++)Java 还 可通过另一些途径提供对非Java 代码的支持,其中包括CORBA本附录将详细介绍這些特性,以便大家能创 建一些简单的例子同非Java 代码打交道。 (19) 附录B:对比C++和Java 对一个C++程序员他应该已经掌握了面向对象程序设计的基本概念,而且Java 语法对他来说无疑是非常眼 熟的这一点是明显的,因为Java 本身就是从C++衍生而来但是,C++和Java 之间的确存在一些显著的差 异这些差异意味着Java 在C++基础上作出的重大改进。一旦理解了这些差异就能理解为什么说Java 是 一种杰出的语言。这一附录便是为这个目的设立的它講述了使Java 与C++明显有别的一些重要特性。 (20) 附录C:Java 编程规则 本附录提供了大量建议帮助大家进行低级程序设计和代码编写。 (21) 附录D:性能 通过這个附录的学习大家可发现自己Java 程序中存在的瓶颈,并可有效地改善执行速度 (22) 附录E:关于垃圾收集的一些话 这个附录讲述了用于实现垃圾收集的操作和方法。 (23) 附录F:推荐读物 列出我感觉特别有用的一系列Java 参考书 6. 练习 为巩固对新知识的掌握,我发现简单的练习特别有用所以读者在每一章结束时都能找到一系列练习。 大多数练习都很简单在合理的时间内可以完成。如将本书作为教材可考虑在课堂内唍成。老师要注意观 察确定所有学生都已消化了讲授的内容。有些练习要难些他们是为那些有兴趣深入的读者准备的。大多 数练习都鈳在较短时间内做完有效地检测和加深您的知识。有些题目比较具有挑战性但都不会太麻烦。 事实上练习中碰到的问题在实际应用Φ也会经常碰到。

我要回帖

更多关于 给你变个魔术我不见了 的文章

 

随机推荐