Java程序设计培训教程.doc
Java官方培训课程本书的主要目标是为你提供有关Java应用和Java applets的面向对象的程序设计所必需的知识和技能;并讲授Java编程语言句法和面向对象的概念,以及Java运行环境的许多特性, 对图形用户界面(GUIs)、多线程和网络的支持等。本课程包括了参加SUN Certified Java Programmer和SUN Certified Java Developer考试所必备的知识。一、课程概述课程概述本课程主要包括以下内容:- Java编程语言句法- 应用于Java编程语言的面向对象的概念- 图形用户界面(GUI)编程- 创建Applet- 多线程- 网络本课程首先讨论了Java运行环境和Java编程语言句法,然后阐述了应用于Java编程语言的面向对象的概念;随着课程的进展还将讨论有关Java平台的更先进的特性。本课程授课对象应具备运用Java 编程语言或其它语言进行基本语言设计的能力,它是“非程序员Java编程”(“Java Programming for NonProgrammers”,SL-110)课程的延续。尽管Java编程语言独立于操作系统,但它所产生的图形用户界面(GUI)却可能依赖于执行其代码的操作系统。本课程中的例题所使用的代码运行于Solaris TM操作系统,因而本手册中的图形具备Motif GUI。如果将这些代码运行于Windows 95操作系统,则可产生Microsoft Windows 95 GUI。本课程的内容适用于所有Java操作系统端口。二、课程图每一模块的课程都从一张课程图开始,使学员可掌握自己的学习进度。全课程设置流程图如下所示:三、各模块概述各模块概述- 模块1起步- 模块2标识符、关键字和类型- 模块3表达式和流程控制- 模块4数组- 模块5对象和类- 模块6高级语言特性- 模块7异常- 模块8建立GUIs- 模块9AWT事件模型- 模块10AWT组件库- 模块11Java基础类- 模块12Java Applets介绍- 模块13线程- 模块14流式I/O和文件- 模块15网络- 模块1起步本模块概述了Java编程语言的主要特性及Java应用程序,阐述了类和包的概念,并介绍了一些常用Java包。- 模块2标识符、关键字和类型Java编程语言与C语言类似,具有许多编程构造。本模块对这些构造作了一般介绍并讲授了每一构造所要求的一般句法。此外,还介绍了采用集合数据类型进行数据关联的面向对象的方法。- 模块3表达式和流程控制本模块介绍了包括运算符和Java程序控制句法在内的表达式。- 模块4数组本模块讲解了如何声明、创建、初始化和拷贝Java数组。- 模块5对象和类本模块是在模块2的基础上,对Java对象的概念作了进一步的阐述,包括重载、覆盖、子类和构造函数。- 模块6高级语言特性本模块是模块5的继续,它进一步讲解了Java面向对象的编程模块,包括一些新的JDK1.1特性降级和内部类。该模块还介绍了在Java开发包JDKTM 1.2中新增的收集的概念。- 模块7异常本模块为Java程序员提供了一种在运行Java程序时俘获错误的机制,并阐述了预定义异常和用户定义异常。- 模块8建立GUIs在Java编程语言中,所有图形用户界面都是建立在框架和面板的概念之上。本模块介绍了布局管理和容器的概念。- 模块9AWT事件模型Java编程语言1.1版的最重要的变化就是将事件送入和送出Java组件的方法的变化。本模块阐述了JDK1.0和1.1的事件模型的区别,并演示了如何建立小型事件柄(compact event handler)的方法。- 模块10AWT组件库本模块介绍了用于建立Java GUIs的抽象窗口工具包(AWT)组件,并演示了Java AWT组件和1.1事件模型共同工作的方法。l 模块11Java基础类介绍本模块重点介绍了JDK1.2的一个重要特性Java基础类(JFC),阐述了Swing组件和它们的可插入式外观及感觉的体系结构,并介绍了一例基本的Swing应用及JFC的其它特点,例如在二维图形、存取性及拖放(Drag and drop)等方面的应用。- 模块12Java Applets介绍本模块演示了applet 和应用程序开发之间的区别,并介绍了JDK 1.2的声音增强功能.- 模块13线程线程是一个复杂的论题。本模块阐述了与Java编程语言相关的线程问题,并介绍了一个简单的线程通信和同步传输实例。- 模块14流式I/O和文件本模块阐述了既可读写数据又可读写文本文件的类,并介绍了对象流的概念。- 模块15网络本模块介绍了Java网络编程包并演示了传输控制协议/Internet协议(TCP/IP)客户服务器模型。四、课程目标完成本课程的学习后,你应该能够:- 描述语言的主要特性- 编译并运行Java应用程序- 理解和使用在线超文本Java技术文件- 描述语言句法元素和构造- 理解面向对象的例子并使用该语言的面向对象特性- 理解并使用异常- 开发图形用户界面- 描述Java技术平台上的用于建立GUIs的抽象窗口工具包- 从GUI输入- 理解事件处理- 描述Swing的主要特性- 开发Java applets- 读写文件和其它数据源- 在不使用GUI的情况下,对所有数据源执行输入输出- 理解多线程基础- 开发多线程Java应用程序和applets- 使用TCP/IP和用户数据报协议(UDP)开发客户和服务器程序五、从各模块中所获得的技能下表的左侧显示有关的Java应用程序编程技能,右侧的黑格表示出讲解其左侧相应技能的有关模块,而灰格则表示简述其左侧相应技能的有关模块。ModuleSkills Gained123456789101112131415Describe Key language featuresCompile and run a Java applicationUnderstand and use the online hypertext Java technology documentationDescribe language syntactic elements and constructsUnderstand the object-oriented paradigm and use object-oriented featuresUnderstand and use exceptionsDevelop a GUIDescribe the Java technology platforms Abstract Window Toolkit from which GUIs are builtTake input from a graphical user interfaceUnderstand event handlingDescribe the main features of SwingDevelop Java appletsUnderstand the basics of multithreadingDevelop multithreaded Java applications and appletsPerform I/O to all sources without the use of a GUIRead and write to files and other data sourcesDevelop Java client and server programs using TCP/IP and UDP六、课时安排下表给出了大致的课程进度Module Day Day Day Day Day1 2 3 4 5About This Course A.M.Module 1-Getting Started A.M.Module 2-Identifiers,Keywords,and Types A.M.Module 3-Expressions and Flow Control P.M.Module 4-Arrays P.M.Module 5-Objects and Classes A.M.Module 6-Advanced Language Features P.M.Module 7-Exceptions A.M.Module 8-Building GUIs A.M.Module 9-The AWT Event Model P.M.Module 10-The AWT Component Library A.M.Module 11-Introduction to JFC A.M.Module 12-Introduction to Applets P.M.Module 13-Threads A.M.Module 14-Stream I/O and Files P.M.Module 15-Networking P.M.七、未包括的论题未包括的论题- 一般编程概念。本课程不是为从未参与过编程的人员而设置。- 一般面向对象概念。本课程未包括的论题见上表,由SUN Educational Services(SES)提供的其它课程包括了上述论题。- 面向对象的概念见OO-100:面向对象的技术和概念- 面向对象的设计和分析见OO-120面向对象的设计和分析- 一般编程概念见SL-110:非程序员Java编程八、如何做好准备?如何做好准备?在学习本课程前,你应该已经完成了下列内容的学习:- SL-110 非程序员Java编程- 用C或C+创建编译程序- 用文本编辑器创建并编辑文本文件- 使用World Wide Web(WWW)浏览器,如Netscape NavigatorTM在学习本课程前,你应该已经完成了下列内容的学习:- SL-110 非程序员Java编程或能够:- 用C或C+创建编译程序- 用文本编辑器创建并编辑文本文件- 使用World Wide Web(WWW)浏览器,如Netscape NavigatorTM九、自我介绍:自我介绍- 姓名- 公司- 职务、职责- 编程经历- 参与本课程学习的原因- 对本课程的预期现在你已经进入本课程的学习,请互相介绍并填写上面的表格。十、如何使用本教材如何使用本教材- 课程图- 相关问题- 页头图- 教程- 练习- 检查你的进度- 思考题为使你学好本课程,本教材采用了包括下列主要项目的授课模式:l 课程图每一模块都从内容概述开始,这样你就可以了解该模块在实现整个课程目标中所起的作用。l 相关问题每一模块的相关问题部分提供给你一些有关该模块的问题供学习者之间进行讨论,并鼓励你思考在Java应用程序编程过程中你的兴趣与该模块内容的关系l 页头图页头图可帮助你及时而轻松的跟上教师的进度。它并不是在每一页都出现l 教程教师将为你提供有关模块的特有信息,这些信息将有助于你掌握做练习所需要的知识和技能l 练习练习将为你提供测试你的技能和应用所学概念的机会。本教程中所提供的例题代码亦有助于你完成练习。l 检查你的进度在这一部分,模块的目标被重新提及,有时是以问题形式出现。这样,在你进入下一模块之前,就可以检查你是否已完成了目前这一模块所要求达到的目标。l 思考题具有挑战性的问题有助于你应用所学模块内容或预测待学模块的内容。十一、图表和印刷体例说明下列图表及印刷体例代表着不同的含义:辅助资源表示可获取辅助参考资料。讨论表示此时建议以小组或班级形式进行讨论。练习目标表示练习的目标,这个练习适合于正在讨论的内容。注意附加重要信息、强调信息、有趣或特殊信息警告对数据或机器的潜在损坏印刷体例字体Courier系用来表示命令名称、文件名及目录名,同时也表示计算机屏幕输出。例如:Use ls al to all files.System% You have mail黑体courier bold系用来表示你打印的字符和数字。例如:system% suPassword:斜体courier italic系用来表示变量和命令行,它可以被实际名称或值所代替。例如:To delete a file, type rm filename.斜体Palatino系用来表示书名、新词或术语或需强调的词。例如:Read Chapter 6 in Users Guide.These are called class optionsYou must be root to do this.第一章 起 步本模块对Java编程语言做了一般性描述,包括Java虚拟机、垃圾收集和安全性等。第一节 相关问题讨论下列问题与本模块相关- Java编程语言是一种完整的语言吗?它是不是仅用于编写Web程序 ?- 你为什么需要另一种编程语言 ?- Java平台是如何在其它语言平台上提高性能的 ?第二节 目 标完成本模块的学习后,你应该能够:- 描述Java编程语言的主要特性- 描述Java虚拟机的主要功能- 描述垃圾收集是如何进行的- 列举由处理代码安全性的Java平台所执行的三大任务- 定义Class,Package,Applets和Applications- 编写、编译并运行简单Java应用程序- 利用Java技术应用程序编程界面(API)的在线文档来标识Java. lang包的方法。参考资料辅助资源下列参考资料可为本模块所讨论的问题提供更详细的补充- Lindholm and Yellin. 1997. The Java Virtual Machine Specification. Addison-Wesley.- Yellin, Frank. Low-Level Security in Java, white paper. Online. Available:第三节 什么是Java编程语言 ?什么是Java编程语言Java是:- 一种编程语言- 一种开发环境- 一种应用环境- 一种部署环境- 句法与C+相似,语义与Small Talk相似- 用来开发applets,又用来开发applicationsJava是:- 一种编程语言- 一种开发环境- 一种应用环境- 一种部署环境Java编程语言的句法与C+的句法相似,语义则与Small Talk TM的语义相似。Java编程语言可被用来创建任何常规编程语言所能创建的应用程序。在World Wide Web(WWW)和能够运行称为applets程序的浏览器的有关介绍中,人们经常提及Java编程语言。Applets是一种贮存于WWW服务器的用Java编程语言编写的程序,它通常由浏览器下载到客户系统中,并通过浏览器运行。Applets通常较小,以减少下载时间,它由超文本标识语言(HTML)的Web页来调用。Java applications是一种独立的程序,它不需要任何Web浏览器来执行。它们是一种典型的通用程序;可运行于任何具备Java运行环境的设备中。1.3.1 Java编程语言的主要目标Java编程语言的主要目标提供一种解释环境为- 提高开发速度- 代码可移植性- 使用户能运行不止一个活动线程- 当程序运行时,能动态支持程序改变提供更好的安全性设计Java编程语言的主要目标是提供一种易于编程的语言,从而Ú 消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。Ú 利用面向对象的概念使程序真正地成为可视化程序Ú 为使代码尽可能清晰合理、简明流畅提供了一种方法Java编程语言的主要目标设计Java编程语言的主要目标是提供一种易于编程的语言- 消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。- 利用面向对象的概念使程序真正地成为可视化程序- 为使代码尽可能清晰合理、简明流畅提供了一种方法Java编程语言的主要目标(续)- 为获得如下两点益处提供一种解释环境Ú 提高开发速度消除编译链接装载测试周期。Ú 代码可移植性使操作系统能为运行环境做系统级调用- 为运行不止一个活动线程的程序提供了一种方式- 通过允许下载代码模块,从而当程序运行时也能动态支持程序改变。- 为那些保证安全性而装载的代码模块提供了一种检查方法。Java编程语言的主要目标下列特性使这些目标付诸实现:- Java虚拟机(JVM)- 垃圾收集- 代码安全性Java编程语言的主要目标(续)精心开发的Java技术体系结构为上述目标的实现提供了保证。Java的如下特性使这些目标得以实现- Java虚拟机- 垃圾收集- 代码安全性1.3.2 Java虚拟机Java虚拟机- 提供硬件平台规范- 解读独立于平台的已编译的字节码- 可当作软件或硬件来实现- 可在Java技术开发工具或Web浏览器上实现Java虚拟机规范为Java虚拟机(JVM)作了如下定义:在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储在 .class文件中;每个文件都包含最多一个public类。Java虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范,该规范使Java软件独立于平台,因为编译是针对作为虚拟机的“一般机器”而做,这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。Java虚拟机JVM为下列各项做出了定义- 指令集(中央处理器CPU )- 注册集- 类文件格式- 栈- 垃圾收集堆- 存储区Java虚拟机(续)编译器在获取Java 应用程序的源代码后,将其生成字节码,它是为JVM生成的一种机器码指令。每个Java解释器,不管它是Java技术开发工具,还是可运行applets的Web浏览器,都可执行JVM。JVM为下列各项做出了定义- 指令集(相当于中央处理器CPU )- 注册集- 类文件格式- 栈- 垃圾收集堆- 存储区Java虚拟机- 由保持适当类型约束的字节码形成代码- 大部分类型检查在编译代码时完成- 每个由SUN TM批准的JVM必须能够运行任何从属类文件Java虚拟机(续)JVM的代码格式由紧缩有效的字节码构成。由JVM字节码编写的程序必须保持适当的类型约束。大部分类型检查是在编译时完成。任何从属的Java技术解释器必须能够运行任何含有类文件的程序,这些类文件应符合Java虚拟机规范中所指定的类文件格式。1.3.3 垃圾收集垃圾收集- 不再需要的分配存储器应取消分配- 在其它语言中,取消分配是程序员的责任- Java编程语言提供了一种系统级线程以跟踪存储区分配- 垃圾收集- 可检查和释放不再需要的存储器- 可自动完成上述工作- 可在JVM实现周期中,产生意想不到的变化许多编程语言都允许在程序运行时动态分配存储器,分配存储器的过程由于语言句法不同而有所变化,但总是要将指针返回到存储区的起始位置当分配存储器不再需要时(存储器指针已溢出范围),程序或运行环境应取消分配存储器。在C,C+ 或其它语言中,程序员负责取消分配存储器。有时,这是一件很困难的事情。因为你并不总是事先知道存储器应在何时被释放。当在系统中没有能够被分配的存储器时,可导致程序瘫痪,这种程序被称作具有存储器漏洞。Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。垃圾收集在Java技术程序的生命周期中自动进行,它解除了取消分配存储器的要求,并避免了存储器漏洞。然而,垃圾收集可在JVM实现的周期中,产生意想不到的变化。1.3.4 代码的安全性概述下图显示了Java技术的运行环境及其加强代码安全性的方法。Java源程序文件通过“编译”,在你的感觉中,就好象是将它们从程序员编写的文本文件格式转换成了一组字节码。字节码被存储在 .class文件中。构成Java软件程序的字节码在运行时被加载、校验并在解释器中运行。当运行applets时,字节码可被下载,然后由建于浏览器中的JVM进行解释。解释器具备两种功能,一是执行字节码,二是对底层硬件做适当调用。在一些使用Java技术的运行环境中,部分校验过的字节码被编译成原始机器码并直接运行于硬件平台。这就使Java软件代码能够以C或C+接近的速度运行,只是在加载时, 因为要编译成原始机器码而略有延迟。注意SUN MicrosystemsTM通过采用新的技术,使Java虚拟机的性能已经有了进一步的提高。这种新型虚拟机被称为HotSpotTM虚拟机,它具备了使Java编程语言能象编译C+一样快速运行的潜力。HotSpot虚拟机对操作系统具有本地多线程支持能力,而不是虚拟多线程。因而,HotSpot虚拟机可保证对一个应用程序来说,并不一定有代码才能使用这一能力。HotSpot技术解决了性能与移植性之间的难题。Java运行环境执行三大任务- 加载代码- 校验代码- 执行代码代码安全性(续)Java运行环境一个Java技术的运行环境可运行为JVM编译的代码并执行如下三大任务:- 加载代码由类加载器执行- 校验代码由字节码校验器执行- 执行代码由运行时的解释器执行类加载器类加载器为程序的执行加载所需要的全部类。类加载器将局部文件系统的类名空间与来自网络源的类名空间相分离,以增加安全性。由于局部类总是首先加载,因而可限制任何“特洛依木马”的应用。当全部类被加载后,可执行文件的存储器格式被确定。这时,特定的存储器地址被分配给符号引用并创建检索表格。由于存储器格式在运行时出现,因而Java技术解释器增加了保护以防止对限制代码区的非法进入。 字节码校验 可保证- 代码符合JVM规范- 代码不破坏系统完整性- 代码不会引起操作数栈上溢或下溢- 所有操作代码的参数类型的准确性- 无非法数据转换(整数到指针的转换)代码安全性(续)字节码校验器Java软件代码在实际运行之前要经过几次测试。JVM将代码输入一个字节码校验器以测试代码段格式并进行规则检查检查伪造指针、违反对象访问权限或试图改变对象类型的非法代码。注意-所有源于网络的类文件都要经过字节码校验器代码安全性(续)校验过程字节码校验器对程序代码进行四遍校验,这可以保证代码符合JVM规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证:- 类符合JVM规范的类文件格式- 无访问限制违例- 代码未引起操作数栈上溢或下溢- 所有操作代码的参数类型将总是正确的- 无非法数据转换发生,如将整数转换为对象引用- 对象域访问是合法的第四节 一个基本的Java应用程序象其它编程语言一样,Java编程语言也被用来创建应用程序。一个共同的小应用程序范例是在屏幕上显示字串“Hello World!”。下列代码给出了这个Java应用程序。1.4.1 HelloWorldApp1./2./ Sample HelloWorld application3./4.public class HelloWorldApp5.public static void main (String args) 6.System.out.println ("Hello World!");7.8.以上程序行是在你的屏幕上打印“Hello World!”所需的最少组件。1.4.2 描述HelloWorldApp第1-3行程序中的1-3行是注释行1 /2 / Sample HelloWorld application3 /第4行第4行声明类名为HelloWorldApp。类名(Classname)是在源文件中指明的,它可在与源代码相同的目录上创建一个classname·class文件。在本例题中,编译器创建了一个称为HelloWorldApp.class的文件, 它包含了公共类HelloWorldApp的编译代码。4 public class HelloWorldApp第5行第5行是程序执行的起始点。Java技术解释器必须发现这一严格定义的点,否则将拒绝运行程序。其它程序语言(特别是C和C+)也采用main ()声明作为程序执行的起始点。此声明的不同部分将在本课程的后几部分介绍。如果在程序的命令行中给出了任何自变量,它们将被传递给main()方法中被称作args的String数组。在本例题中,未使用自变量。5 public static void main (String args) - public方法main()可被任何程序访问,包括Java技术解释器。- static 是一个告知编译器main()是用于类HelloWorldApp中的函数的关键字。为使main()在程序做其它事之前就开始运行,这一关键字是必要的。- void 表明main()不返回任何信息。这一点是重要的,因为Java编程语言要进行谨慎的类型检查,包括检查调用的方法确实返回了这些方法所声明的类型。- String args 是一个String数组的声明,它将包含位于类名之后的命令行中的自变量。java HelloWorldApp args0args1····第6行第6行声明如何使用类名、对象名和方法调用。它使用由System类的out成员引用的PrintStreamout对象的println()方法,将字串“Hello World!”打印到标准输出上。6 System.out.println (“Hello World!”);在这个例子中,println()方法被输入了一个字串自变量并将其写在了标准输出流上。第7-8行本程序的7-8行分别是方法main()和类HelloWorldApp的下括号。7 8 1.4.3 编译并运行HelloWorldApp编译并运行HelloWorldApp- 编译HelloWorldApp.javajavac HelloworldApp.java- 运行应用程序java HelloWorldApp- 判定编译和运行的共同错误编译当你创建了HelloWorldApp.java源文件后,用下列程序行进行编译:c:studentjavac HelloWorldApp.java如果编译器未返回任何提示信息,新文件HelloWorldApp.class则被存储在与源文件相同的目录中,除非另有指定。如果在编译中遇到问题,请参阅本模块的查错提示信息部分。运行为运行你的HelloWorldApp应用程序,需使用Java解释器和位于bin目录下的java:c:student java HelloWorldAppHello World!注意必须设置PATH环境变量以发现java和javac,确认它包括c:jdk1.2bin1.4.4 编译查错编译时的错误以下是编译时的常见错误- javac:Command not foundPATH变量未正确设置以包括javac编译器。javac编译器位于JDK目录下的bin目录。- HelloWorldApp.java:6: Method printl(java.lang.String)not found in class java.io.PrintStream.System.out.printl ("Hello World!");方法名println 出现打印错误。- In class HelloWorldApp:main must be public or static该错误的出现是因为词static 或public被放在了包含main方法的行之外。运行时的错误- cant find class HelloWorldApp (这个错误是在打印java HelloWorldApp时产生的)通常, 它表示在命令行中所指定的类名的拼写与filename.class文件的拼写不同。Java编程语言是一种大小写区别对待的语言。例如: public class HelloWorldapp 创建了一个HellloWorldapp.class,它不是编译器所预期的类名(HelloWorldApp.class)。- 命名如果·java文件包括一个公共类,那么它必须使用与那个公共类相同的文件名。例如在前例中的类的定义是public class HelloWorldapp源文件名则必须是HelloWorldapp.java- 类计数在源文件中每次只能定义一个公共类。源文件布局源文件布局包含三个“顶级”要素- 一个可选择的包声明- 任意数量的输入语句- 类和界面声明一个Java源文件可包含三个“顶级”要素:- 一个包声明(可选)- 任意数量的输入语句- 类和界面声明该三要素必须以上述顺序出现。即,任何输入语句出现在所有类定义之前;如果使用包声明,则包声明必须出现在类和输入语句之前。第五节 类和包介绍类和包介绍1. 什么是类和包?2. Java类库中的几个重要包java.langjava.awtjava.appletjava.iojava.util类是描述提供某种功能的模块的一般术语。Java开发集(JDK)给出了一套标准的类(称作类库),这些类可执行大部分所需的基本行为 不仅为编程任务(例如,类可提供基本的数学函数、数组和字符串),而且为图形和网络。类库被组织成许多包,每个包都包含几个类。如下所列为一些重要的包:java.lang包含一些形成语言核心的类,如String、Math、Integer和Thread。java.awt包含了构成抽象窗口工具包(AWT)的类,这个包被用来构建和管理应用程序的图形用户界面。java.applet包含了可执行applet特殊行为的类。包含执行与网络相关的操作的类和处理接口及统一资源定位器(URLs)的类。java.io包含处理I/O文件的类。java.util包含为任务设置的实用程序类,如随机数发生、定义系统特性和使用与日期日历相关的函数。第六节 使用Java API文档使用Java API文档1. 一组超文本标识语言(HTML)文件提供了有关API的信息2. 一个包包含了对所有类信息的超链接3. 一个类文档包括类层次、一个类描述、一组成员变量和构造函数等一组HTML文件以文档的形式提供了有关API的信息,这个文档的布局是等级制的,因而主页列出所有的包为超链接。如果选中了一个特殊包的热链接,作为那个包成员的类将被列出。从一个包页选中一个类的热链接将提交一页有关那个类的信息。图1-1显示了这样一个类文档图1-1一个类文档的主要部分包括:- 类层次- 类和类的一般目的描述- 成员变量列表- 构造函数列表- 方法列表- 变量详细列表及目的和用途的描述- 构造函数详细列表及描述- 方法详细列表及描述练习:基本任务练习目标在本练习里,你将利用Java API文档练习如何识别包、类和方法并练习标准输入输出方法。你还将编写、编译和运行两个简单的使用这些方法的应用程序。一、