java 核心技术-12版 卷Ⅰ- 4.10.6 包注释
可以直接将类、方法和变量的注释放置在 Java 源文件中,只要用 /** … */文档注释界定就可以了。但是,要想产生包注释,就需要在每一个包目录中添加一个单独的文件。可以有如下两个选择:
- 提供一个名为 package-info.java 的 Java 文件。这个文件必须包含一个初始的 Javadoc 注释,以/**和*/界定,后面是一个 package 语句。它不能包含更多的代码或注释。
- 提供一个名为 package.html 的HTML 文件,抽取标记 body>…</body> 之间的所有文本
在这里,假设你希望HTML 文件将放在名为 docDirectory 的目录下。执行以下步骤:
- 切换到源文件目录,其中包含想要生成文档的源文件。如果有嵌套的包要生成文档,例如: com.horstmann.corejava,就必须切换到包含子目录 com 的目录(如果提供 overview.html 文件的话,这就是这个文件所在的目录)。
- 如果是一个包,应该运行命令
javadoc -d docDirectory nameOfPackage
或者,如果要为多个包生成文档,运行:
javadoc -d docDirectory nameOfPackage1 nameOfPackage …
如果你的文件在无名包中,则应该运行:
javadoc -d docDirectony *.java
如果省略了 -d docDirectory 选项,HTML 文件就会提取列当前目录下。这样可能很混乱,因此我不提倡这种做法。
可以使用很多命令行选项对 javadoc 程序进行微调。例如,可以使用 -author 和 -version 选项在文档中包含 @author 和 @version 标记(默认情况下,这些标记会被略)。另一个很有用的选项是 -link,用来为标准类添加超链接。例如,如果使用命令
javadoc -link http://docs.oracle.com/javase/9/docs/api *.java
那么,所有的标准类库的类都会自动地链接到 Oracle 网站的文档。
如果使用 -linksource 选项,那么每个源文件将会转换为 HITML(不对代码着色,但包含行号),并且每个类和方法名将变为指向源代码的超链接。
还可以为所有源文件提供一个概要注释。把它放在一个类似 overview.html 的文件中,运行 javadoc 工具,并提供命令行选项 -overview filename。将抽取标记 body>…</body> 之间的所有文本。当用户从导航栏中选择“Overview”时,就会显示这些内容。
有关其他的选项,请查阅 javadoc 工具的联机文档 https://docs.oracle.com/javase/9/javadoc/javadoc.html
java 核心技术-12版 卷Ⅰ- 前言
致读者
1995年底,Java 语言在Internet 舞台一亮相便名声大噪。Java 技术承诺成为连接用户与信息的万能胶,而不论这些信息来自 Web 服务器、数据库、信息提供商,还是任何其他可以想象的渠道。事实上,就兑现这个承诺而言,Java 具有独特的优势和地位。它是一种完全可信赖的程序设计语言,并得到了广泛认可。其固有的可靠性与安全特性不仅令Java 程序员放心,也令使用Java 程序的用户放心。Java 内建了对网络编程、数据库连接和并发等高级程序设计任务的支持。
1995年以来,已经发布了Java 开发工具包(Java Development Kit,即JDK)的12个主要版本,在过去的25年中应用程序编程接口(API)也从200个类扩展到超过4000个类。现在这些API覆盖了用户界面构建、数据库管理、国际化、安全性以及XML处理等各个不同的领域。
你手上的这本书是《java核心技术》第12版的卷Ⅰ。《Java核心技术》的每个版本都紧随着Java 开发工具包(JDK)的最新版本,并进行全面修订,以涵盖Java 的最新特性。这一版经过更新,将反映Java17的特性。
与本书以前的版本一样,这一版仍然将读者群定位为那些打算将java应用到实际项目中的程序员。这里假设读者是具有程序设计语言(除Java 外)坚实背景知识的程序员,而且不希望书中充斥着玩具式的示例(诸如,烤面包机、动物园的动物或者神经质的跳动文本)。这些绝对不会在这本书中出现。本书的目标是让读者充分理解Java语言及Java 类库,而不是让读者产生误解。
本书提供大量示例代码来演示Java 的几乎每一个语言特性和类库特性。这里有意使用简单的示例程序以突出重点,不过大部分示例都不是虚构的,也没有偷工减料。在编写代码时,这些示例可以作为很好的起点。
我们假定读者愿意(甚至渴望)学习Java 提供的所有高级特性。例如,本书将详细介绍以下内容:
- 面向程序对象设计
- 反射与代理
- 接口与内部类
- 异常处理
- 泛型程序设计
- 集合框架
- 事件监听器模型
- 图形界面设计
- 并发
随着Java 类库的爆炸式增长,只用一卷无法涵盖程序员需要了解的所有Java 特性。因此,我们决定将本书分为两卷。卷Ⅰ(本书)集中介绍Java语言的基本概念以及用户界面程序设计的基础知识。卷Ⅱ(高级特性)进一步介绍企业特性以及高级的用户界面程序设计,其中详细讨论以下内容:
- 流API
- 文件处理与正则表达式
- 数据库
- XML处理
- 注解
- 国际化
- 网络编程
- 高级GUI组件
- 高级图形
- 原生方法
写书时难免出现错误和不准确的地方。我们很想知道有哪些错误,不过,也希望同一个问题只被告知一次。我们在 http://horstmann.com/corejava 中给出了一个常见问题和bug修正列表。在勘误页的最后(建议先阅读勘误页)附有一个表单,可以用来报告bug和提出改进意见。如果我们没能回答每一个问题或者没有及时回复,请不要失望。我们确实会阅读所有电子邮件,而且非常感谢你的建议,这会使本书后续版本更清晰、更全面。
关于本书
第1章概述了Java与其他程序设计语言不通的功能,解释这种语言的设计初衷,以及在哪些方面达到了预期。然后,简要叙述java 的历史,介绍Java 是如何诞生和演进的。
第2章介绍如何下载和安装JDK以及本书的程序示例,然后知道读者编译和运行一个控制台应用和图形应用。你叫了解如何使用JDK、java IDE和 JShell 工具。
第3章开始讨论Java语言。这一掌会介绍一些基础知识,包括变量、循环和简单的函数。对于C或C++程序员来说,学习这一掌的内容会感觉一帆风顺,因为这些语言特性的语法基本上与C语言相同。如果你没有C语言背景,但使用过其他程序设计语言(如Visual Basic),可能需要仔细阅读这一掌。
面向对象程序设计(Object-Oriented Programming,OOP)是当今程序设计的主流,而Java 便是一种OOP语言。第4章将介绍面向对象两大基石中的第一个概念——封装,以及Java 语言实现封装的机制,即类与方法。除了Java语言规则之外,还对如何实现完善的OOP给出了建议。最后会介绍奇妙的javadoc工具,它能将代码注释转换为一组包含超链接的网页。熟悉C++的程序员可以快速浏览这一章,而对于没有面向对象程序设计背景的程序员,在进一步学习java之前应当先花一些时间了解OOP的有关概念。
类和封装只是OOP的一部分,第5章将介绍另一部分——继承(inheritance)。继承允许利用现有的类,并根据需要进行修改。这是Java程序设计中的一个基础技术。Java中的继承机制与C++十分相似。重申一次,C++程序员可以只关注这两种语言的不同之处。
第6章介绍如何使用Java 的接口(interface)。接口允许你超越第5章中的简单继承模型。掌握接口会让你充分获得Java面向对象程序设计方法的强大能力。介绍接口之后,我们将转而介绍lambda 表达式(lambda expression),这是一种简洁的表示方法,用来表示可以在以后某个时间点执行的代码块。接下来还会讲解Java 的一个有用的技术特性——内部类(inner class)。
第7章讨论异常处理(exception handling),这是Java处理异常情况的一种健壮机制,用于处理正常程序可能出现意外的情况。异常提供了一种将正常处理代码与错误处理代码分开的有效手段。当然,即使通过处理所有异常条件来强化程序,程序仍然有可能不按预期的方式工作。这一章的最后一节将给出一组实用的调试技巧。
第8章概要介绍泛型程序设计。泛型程序设计可以让程序更可读、更安全。我们会展示如何使用强类型机制,而舍弃不好看也不安全的强制类型转换,以及如何处理与java 老版本兼容带来的复杂问题。
第9章讨论的是java 平台的集合框架。如果希望收集多个对象,并在以后获取这些对象,就应当使用最适用的集合,而不是简单地把这些元素放在一个数组中。这一章会介绍如何创分利用预建的标准集合。
第10章介绍GUI程序设计,展示如何创建窗口、如何在窗口中绘图、如何利用几何图形绘图、如何采用多种字体格式化文本,以及如何显示图像。接下来介绍如何编写代码来响应事件,如鼠标单击事件或按键事件。
第11章详细讨论Swing GUI工具包。Swing 工具包允许你建立跨平台的图形用户界面。还将介绍各种按钮、文本组件、边框、滑动条、列表框、菜单以及对话框的有关内容。不过,一些更高级的组件会在卷Ⅱ中讨论。
第12章是本书的最后一章,这一章将讨论并发,即编写并行执行的任务。当前,大多数处理器都有多个内核,而且,我们希望这些内核都保持忙碌,所以并发时Java技术的一个重要且令人振奋的应用。
附录列出了Java 语言的保留字。
约定
与许多计算机图书一样,本书使用等宽字体(monospace type)表示计算机代码。
注释:注释信息会用这样的图标
提示:提示信息会用这样的图标
警告:对于可能出现的危险,我们用这样的图标做出警示
C++ 注释:在本书中有许多用来解释Java与C++之间差别的C++注释。没有C++背景或者不擅长C++编程,并把它当做一场噩梦不愿意再想起来的程序员可以跳过这些注释
Java提供了一个庞大的程序设计库,即应用程序编程接口(API)。第一次使用API调用时,我们会在那一节末尾给出它的概要描述。这些描述不太正式,但我们希望它们能够比官方的联机API文档提供更多信息。类、接口或方法名后面的编号是引入该特性的JDK版本号,如下例所示:
API 应用程序编程接口 9
本书英文版网站上提供了书中一些程序的源代码,这些程序在书中会以程序清单的形式给出,例如:
程序清单 1-1 InputTest/InputTest.java
示例代码
本书英文版网站 http://horstmann.com/corejava 提供了书中的所有示例代码。有关安装java 开发工具包和示例代码的详细信息请参看第2章。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。