




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaJava中的接口中的接口JavaJava包包用用UMLUML浏览类与包浏览类与包JavadocJavadoc语法语法l接口的概念与特点接口的概念与特点接口是一组特定的函数定义的集合接口是一组特定的函数定义的集合接口中只有函数定义,而没有具体的实现接口中只有函数定义,而没有具体的实现接口中也可以有常量,但不能有变量接口中也可以有常量,但不能有变量接口的作用是定义了一组接口协议接口的作用是定义了一组接口协议接口好像一堵墙,将功能与实现彻底分隔开接口好像一堵墙,将功能与实现彻底分隔开l接口和抽象类的相似之处:接口和抽象类的相似之处:形式相似,二者都定义了一组抽象的函数,而没有具形式相似,二者
2、都定义了一组抽象的函数,而没有具体实现体实现l接口和抽象类的区别:接口和抽象类的区别:接口不能有任何函数的实现过程,而抽象类可以有函接口不能有任何函数的实现过程,而抽象类可以有函数的实现过程数的实现过程类可以实现很多接口,但只能有一个父类类可以实现很多接口,但只能有一个父类接口不是类层次关系中的一部分,两个彼此无关的类接口不是类层次关系中的一部分,两个彼此无关的类也可以实现同一个接口也可以实现同一个接口l接口的功能例题接口的功能例题假设编写一个类(假设编写一个类(StockMonitor类)来察看股市的类)来察看股市的价格波动价格波动表示股票价格的类(股票类)在这个类中注册,当表示股票价格的类
3、(股票类)在这个类中注册,当股价发生变化时,股票对象就自动调用一个函数来股价发生变化时,股票对象就自动调用一个函数来更新股价数据更新股价数据更新股价的函数属于一个接口,每个股票类都需要更新股价的函数属于一个接口,每个股票类都需要实现更新股价的接口函数功能实现更新股价的接口函数功能l注册股票类的函数:注册股票类的函数:public class StockMonitor public void watchStock(StockWatcher watcher, String tickerSymbol, double delta) . l用于更新股价的接口定义用于更新股价的接口定义:public in
4、terface StockWatcher public static final String sunTicker = SUNW; public static final String oracleTicker = ORCL; public static final String ciscoTicker = CSCO; public void valueChanged(String tickerSymbol, double newValue); lwatchStock函数功能:函数功能:第一个参数:实现第一个参数:实现StockWatcher接口的对象接口的对象第二个参数:股票代号第二个参数:
5、股票代号第三个参数:价格波动的阈值,只有股价波动超过第三个参数:价格波动的阈值,只有股价波动超过阈值时,才会刷新股价阈值时,才会刷新股价当当StockMonitor对象检测到感兴趣的股价变化时,对象检测到感兴趣的股价变化时,它会调用它会调用watcher对象的对象的valueChanged函数,以获函数,以获得最新股价得最新股价l接口的完整语法形式接口的完整语法形式publicinterface InterfaceNameExtends SuperInterface1, SuperInterface2, . InterfaceBody接口的组成部分:接口的组成部分:l接口定义部分接口定义部分l
6、接口主体部分接口主体部分l接口函数功能的实现接口函数功能的实现接口仅仅定义了一种函数调用的形式,或者说是定义接口仅仅定义了一种函数调用的形式,或者说是定义了行为的规范,它的具体实现是由类来完成的了行为的规范,它的具体实现是由类来完成的让类实现一个接口,需要在类定义部分加上让类实现一个接口,需要在类定义部分加上“implements”关键字,例如下面的例子:关键字,例如下面的例子:public class StockApp implements StockWatcher public void valueChanged(String tickerSymbol, double newValue)
7、. . . / 具体实现代码具体实现代码 l接口函数功能的实现接口函数功能的实现一个类可以实现多个接口,多个接口名应当以逗号一个类可以实现多个接口,多个接口名应当以逗号隔开,列于隔开,列于implements的后面的后面实现多个接口的例子:实现多个接口的例子:public class StockApp implements StockWatcher, Interface2, Interface3 . . . / 具体实现代码具体实现代码 l接口函数功能的实现接口函数功能的实现一个类如果要实现一个接口的话,就必须实一个类如果要实现一个接口的话,就必须实现接口的所有函数现接口的所有函数接口中的常量
8、:类在实现接口的同时,还继接口中的常量:类在实现接口的同时,还继承了接口中的常量,因此可以作为类的静态承了接口中的常量,因此可以作为类的静态成员常量直接使用成员常量直接使用l接口函数功能的实现接口函数功能的实现对于实现子接口的类,它不但要实现子接口中的全对于实现子接口的类,它不但要实现子接口中的全部函数,还要实现它的父接口的全部函数部函数,还要实现它的父接口的全部函数例如:对于例如:对于StockTracker接口,需要实现接口,需要实现currentValue函数和父接口函数和父接口valueChanged函数函数public class TrackerApp implements Stoc
9、kTracker public void valueChanged(String tickerSymbol, double newValue) . . . void currentValue(String tickerSymbol, double newValue) . . . l接口函数功能的实现接口函数功能的实现一个类也可以实现多个接口,此时它必须实现所有一个类也可以实现多个接口,此时它必须实现所有接口的所有函数接口的所有函数例题:例题:StockAuditApp类类public class StockAuditApp implements StockTracker, Audit publ
10、ic void valueChanged(String tickerSymbol, double newValue) . . . void currentValue(String tickerSymbol, double newValue) . . . public boolean auditPassed(String tickerSymbol, Accoutant indAccount) . . . l接口的使用接口的使用与类相同,当定义一个接口之后,就定义了一种新与类相同,当定义一个接口之后,就定义了一种新的引用型变量类型的引用型变量类型可以象其它引用变量类型一样,使用接口名来定义可以象其
11、它引用变量类型一样,使用接口名来定义一个引用变量一个引用变量接口不能产生一个自己的对象,因此接口变量本身接口不能产生一个自己的对象,因此接口变量本身并不能初始化并不能初始化但接口变量可以指向任何实现该接口的对象,并通但接口变量可以指向任何实现该接口的对象,并通过那个对象来实现接口的功能过那个对象来实现接口的功能l接口的使用接口的使用例题:接口变量的定义例题:接口变量的定义StockWatcher watcher1, watcher2, watcher3;StockTracker aTracker;Audit aAudit;对象的初始化对象的初始化StockApp aStockObj = new
12、 StockApp();TrackerApp aTrackerObj = new TrackerApp();StockAuditApp aAuditObj = new StockAuditApp();l接口的使用接口的使用使用下面的代码调用接口函数使用下面的代码调用接口函数aStockObj.valueChanged(StockWatcher.ciscoTicker, curCiscoValue);aTrackerObj.valueChanged(StockWatcher.sunTicker, curSunValue);watcher1 = aStockObj;watcher1.valueCh
13、anged(StockWatcher.ciscoTicker, curCiscoValue);watcher1 = aTrackerObj;watcher1.valueChanged(StockWatcher.sunTicker, curSunValue);watcher1 = aAuditObj;watcher1.valueChanged(StockWatcher.sunTicker, curSunValue);l接口的使用接口的使用接口函数可以象普通的成员函数一样被实现它的对接口函数可以象普通的成员函数一样被实现它的对象调用象调用对象对象aStockObj, aTrackerObj, aA
14、uditObj所属的类所属的类虽然不同,但它们都直接或间接地实现了虽然不同,但它们都直接或间接地实现了StockWatcher接口接口因此,这三个对象都可以被因此,这三个对象都可以被StockWatcher类型的接类型的接口变量口变量watcher1所指向所指向利用接口变量,程序调用了利用接口变量,程序调用了3个彼此不相干的对象个彼此不相干的对象的的valueChanged函数函数l接口的使用接口的使用接口变量可以指向任何实现该接口的对象接口变量可以指向任何实现该接口的对象通过接口变量只能调用接口函数和接口常量通过接口变量只能调用接口函数和接口常量接口变量不能访问对象的其它函数和成员变量,包接
15、口变量不能访问对象的其它函数和成员变量,包括公开变量和私有变量括公开变量和私有变量例:例:watcher1指向对象指向对象aAuditObj,但它只能调用,但它只能调用函数函数valueChanged(),而不能调用其它函数,如,而不能调用其它函数,如currentValue(), auditPassed()l接口的使用接口的使用如果将接口变量作为参数,就可以调用任何对象的如果将接口变量作为参数,就可以调用任何对象的接口函数,而不用事先知道对象类型接口函数,而不用事先知道对象类型例:例:StockMonitor类的类的watchStock函数:函数:public void watchStock
16、(StockWatcher watcher, String tickerSymbol, double delta) .JavaJava中的接口中的接口JavaJava包包用用UMLUML浏览类与包浏览类与包JavadocJavadoc语法语法lJava中包的概念中包的概念尽管类具有强大的功能,但仅仅一个类是无尽管类具有强大的功能,但仅仅一个类是无法满足应用程序需要的法满足应用程序需要的例,最简单的图形界面程序所需的类:例,最简单的图形界面程序所需的类:l入口类:程序入口,进行初始化、自检、创建并入口类:程序入口,进行初始化、自检、创建并运行其它功能类的对象等工作;运行其它功能类的对象等工作;l
17、图形界面类:每个窗体都需要一个窗体类;图形界面类:每个窗体都需要一个窗体类;l数据类:保存程序执行过程中的各种核心数据;数据类:保存程序执行过程中的各种核心数据;l主功能类:实现程序功能的各种函数和子程序;主功能类:实现程序功能的各种函数和子程序;l文件接口类:读取、保存文件。文件接口类:读取、保存文件。lJava中包的概念中包的概念略复杂的程序还可能需要用户登录与权限管理类、略复杂的程序还可能需要用户登录与权限管理类、数据库接口类、网络接口类等数据库接口类、网络接口类等中等规模程序大约需要中等规模程序大约需要2060个类个类稍大型的应用程序有上百个类稍大型的应用程序有上百个类这样不利于程序的
18、模块化,如果两个类出现同名,这样不利于程序的模块化,如果两个类出现同名,还会造成严重错误还会造成严重错误为此,提出了为此,提出了“包包”的概念,用于将相关的类组织的概念,用于将相关的类组织起来,形成更高一级的模块起来,形成更高一级的模块lJava中包的概念中包的概念“包包”是由一组类和接口所组成的具有一定是由一组类和接口所组成的具有一定功能的集合。功能的集合。简单地说,将一组功能相关的类和接口打包简单地说,将一组功能相关的类和接口打包起来形成的整体,就是包。起来形成的整体,就是包。Java包的作用:包的作用:l使类的组织更加合理,避免类的名称冲突使类的组织更加合理,避免类的名称冲突l“包包”
19、具有一定的访问控制能力,可以从更上具有一定的访问控制能力,可以从更上层的角度进行访问权限控制层的角度进行访问权限控制lJava中包的概念中包的概念例:编写一个绘图程序,其中有圆、矩形等图形类,例:编写一个绘图程序,其中有圆、矩形等图形类,还有一个用于鼠标拖动的接口还有一个用于鼠标拖动的接口/in Graphic.javapublic abstract class Graphic . . . /in Circle.javapublic class Circle extends Graphic implements Draggable . . . /in Rectangle.javapublic
20、class Rectangle extends Graphic implements Draggable . . . /in Draggable.javapublic interface Draggable . . . lJava中包的概念中包的概念使用包的好处:使用包的好处:l(1) 其他编程人员可以轻易地看出这些类和接口其他编程人员可以轻易地看出这些类和接口是相关的,提高了程序的可读性是相关的,提高了程序的可读性l(2) 你编写的类名不会和其它包中的类名相冲突,你编写的类名不会和其它包中的类名相冲突,因为每个包有自己的命名空间因为每个包有自己的命名空间l(3) 你可以让包中的类相互之间有不
21、受限制的访你可以让包中的类相互之间有不受限制的访问权限,与此同时包以外的其它类在访问你的类问权限,与此同时包以外的其它类在访问你的类时仍然受到严格限制时仍然受到严格限制l创建包创建包在定义类或接口的源文件开始加入在定义类或接口的源文件开始加入“package”关键关键字和包名,就将类或接口放到包里了字和包名,就将类或接口放到包里了/in Circle.javapackage graphics;public class Circle extends Graphic implements Draggable . . . 如果两个如果两个java源文件的开头都有相同的包名,则意源文件的开头都有相同的
22、包名,则意味着这两个源文件中的所有类和接口都属于同一个味着这两个源文件中的所有类和接口都属于同一个包包l默认包默认包对于没有指定包名的对于没有指定包名的Java文件,系统认为它们都属文件,系统认为它们都属于一个默认的包于一个默认的包如果没有把自己的如果没有把自己的Java类放入某个包中,那么任何类放入某个包中,那么任何默认包里的对象都可以访问它,并且不局限于同一默认包里的对象都可以访问它,并且不局限于同一个子目录下个子目录下因此,应当在每个因此,应当在每个Java文件的顶部都放上文件的顶部都放上package关键字,指明它属于哪个包关键字,指明它属于哪个包包名也应当是独一无二的包名也应当是独一
23、无二的l包的命名方法包的命名方法Java建议以公司或自己的域名作为包名,因为域名建议以公司或自己的域名作为包名,因为域名肯定是独一无二的肯定是独一无二的包的命名方法是将域名去除开头的包的命名方法是将域名去除开头的“www”,再按,再按分隔点颠倒过来,后面加上包的功能名,以作为包分隔点颠倒过来,后面加上包的功能名,以作为包的全名的全名例:假设域名是例:假设域名是“”,那么你,那么你可以将所有的包都以可以将所有的包都以“com.myjavasite”开头。对于开头。对于绘图功能包,全名是:绘图功能包,全名是:package com.myjavasite.graphics;l访问包中的类访问包中的类
24、包中的类也有访问级别控制包中的类也有访问级别控制类的访问级别只有类的访问级别只有2级:缺省级和公开级级:缺省级和公开级l缺省级不需要任何关键字,只有同一个包内的对缺省级不需要任何关键字,只有同一个包内的对象可以访问该类,外界不能访问象可以访问该类,外界不能访问例如:例如:“class TheClass”l公开级需要在类定义前加公开级需要在类定义前加“public”关键字关键字例如:例如:“public class TheClass”l访问包中的类访问包中的类/ in Graphic.javapackage com.mycom.graphics;public class Graphic Circ
25、le aCircle = new Circle(); Rectangle aRect = new Rectangle(); / in Draggable.javapackage com.mycom.graphics;public interface Draggable . . . / in Circle.javapackage com.mycom.graphics;class Circle implements Draggable . . . / in Rectangle.javapackage com.mycom.graphics;class Rectangle implements Dra
26、ggable . . . l访问包中的类访问包中的类本例中,如果从其它包中访问缺省级的类,就会出现本例中,如果从其它包中访问缺省级的类,就会出现错误错误:/ in MyPlot.javapackage com.mycom.plotcurves;import com.mycom.graphics.*;class MyPlot Graphic aGraph = new Graphic(); Circle aCircle = new Circle(); Rectangle aRect = new Rectangle(); l访问包中的类访问包中的类使用全名调用类的方法:使用全名调用类的方法:clas
27、s MyPlot com.mycom.graphics.Graphic aGraph = new com.mycom.graphics.Graphic(); . . . 即使只有一个对象,在变量定义和初始化时也两次即使只有一个对象,在变量定义和初始化时也两次要用到全名要用到全名当使用约定的包命名方法时,包名可能很长,此时当使用约定的包命名方法时,包名可能很长,此时用起来就更加麻烦用起来就更加麻烦该方法的缺点是繁琐、易出错、影响可读性该方法的缺点是繁琐、易出错、影响可读性l访问包中的类访问包中的类方法方法2:用:用“import”关键字导入一个类:关键字导入一个类:import PackageN
28、ame.ClassName;导入类之后,程序中涉及到这个类的地方只需要用导入类之后,程序中涉及到这个类的地方只需要用类名就可以了:类名就可以了:import com.mycom.graphics.Graphic;Graphic aGraph = new Graphic();l访问包中的类访问包中的类方法方法2每次只能导入一个类,如果包中有很多类的每次只能导入一个类,如果包中有很多类的话,一个一个导入会很麻烦话,一个一个导入会很麻烦Java提供了一次性导入所有类的方法:提供了一次性导入所有类的方法:import PackageName.*;import com.mycom.graphics.*;
29、class MyPlot Graphic aGraph = new Graphic(); l访问包中的类访问包中的类为保证为保证Java程序的基本功能,程序的基本功能,Java会自动导会自动导入两个包:入两个包:ljava.lang包,程序所在的包包,程序所在的包l相当于自动在程序开头添加下面的语句:相当于自动在程序开头添加下面的语句:import java.lang.*;import mypackage.*;l管理管理Java包的源文件包的源文件Java系统建议的文件存储方式就是按照包名将源文系统建议的文件存储方式就是按照包名将源文件和二进制代码文件分级存放件和二进制代码文件分级存放为每个类
30、和接口创建同名的源文件为每个类和接口创建同名的源文件将源文件放到与包名相同的路径下,包名对应子目将源文件放到与包名相同的路径下,包名对应子目录名录名例:例:l管理管理Java包的源文件包的源文件如果包名是用小圆点分隔的多级名称,那么每级名如果包名是用小圆点分隔的多级名称,那么每级名称对应一级子目录,如下图所示:称对应一级子目录,如下图所示:编译源文件:编译源文件:javac comtaranisgraphicsRectangle.java执行源文件:执行源文件:java com.taranis.graphics.RectangleJavaJava中的接口中的接口JavaJava包包用用UMLU
31、ML浏览类与包浏览类与包JavadocJavadoc语法语法lUML简介简介UML是是“The Unified Modeling Language”(统一(统一建模语言)的缩写建模语言)的缩写是一套面向对象系统建模的标准符号体系是一套面向对象系统建模的标准符号体系用图形化的方法来描述元素及其相互关系用图形化的方法来描述元素及其相互关系UML为系统设计提供图形表达,它在开发团队成员为系统设计提供图形表达,它在开发团队成员之间的交流,以及确保架构的稳固性方面起着重要之间的交流,以及确保架构的稳固性方面起着重要的作用的作用lUML简介简介JBuilder提供了提供了UML图表来可视化代码,将包、类、
32、图表来可视化代码,将包、类、接口用图表的形式表示接口用图表的形式表示UML图表可以让你很快地掌握一个未知程序的框架,图表可以让你很快地掌握一个未知程序的框架,从而能够更快地发现并解决问题从而能够更快地发现并解决问题重点在于在重点在于在JBuilder中如何用中如何用UML浏览浏览Java程序,程序,辅助辅助Java程序设计程序设计lUML例题结构例题结构例题包括例题包括4个类:个类:Game, BoardGame, Chess, WeichiChess类,类,1个接口:个接口:GameInterface接口。所接口。所有的类和接口都在有的类和接口都在gamepackage包中包中lUML例题结
33、构例题结构类和接口之间的继承关系:类和接口之间的继承关系:lGame(游戏)类直接继承自(游戏)类直接继承自Objectl由由Game类派生出类派生出BoardGame(棋盘游戏)类(棋盘游戏)类l由由BoardGame类派生出两个类:类派生出两个类:Chess(国际象(国际象棋)类和棋)类和WeichiChess(围棋)类(围棋)类l还有一个还有一个GameInterface接口,接口,Chess类和类和WeichiChess类实现这个接口类实现这个接口lUML例题结构例题结构在在JBuilder中创建一个工程,然后分别添加入上述中创建一个工程,然后分别添加入上述4个类和个类和1个接口个接口
34、单击单击 按钮保存整个工程文件按钮保存整个工程文件为了保证为了保证UML图的准确性,需要先将程序编译一遍,图的准确性,需要先将程序编译一遍,单击单击 按钮编译整个工程按钮编译整个工程编译成功之后,就可以查看编译成功之后,就可以查看UML图了图了l查看查看UML图图单击源文件最下端的单击源文件最下端的“UML”页查看页查看UML图图JavaJava中的接口中的接口JavaJava包包用用UMLUML浏览类与包浏览类与包JavadocJavadoc语法语法lJavadoc工具工具在在Java系统中,提供了系统中,提供了Javadoc工具工具可以根据程序结构自动产生文档可以根据程序结构自动产生文档当
35、程序改变时可以及时更新文档当程序改变时可以及时更新文档编程人员可以自行设计文档结构,生成十分专业的编程人员可以自行设计文档结构,生成十分专业的程序文档程序文档Javadoc输出的是一个输出的是一个HTML文件,可以用文件,可以用Web浏浏览器查看览器查看Javadoc是从注释中提取文档的是从注释中提取文档的lJavadoc语法语法为了不影响程序的正常运行,为了不影响程序的正常运行,Javadoc命令全部嵌命令全部嵌入在注释语句中入在注释语句中它的注释语句形式上有些特殊,必须是以它的注释语句形式上有些特殊,必须是以“/*”开开头,但和其它注释一样,以头,但和其它注释一样,以“*/”结尾结尾有有3
36、种类型的注释文档种类型的注释文档:l类注释类注释l成员变量注释成员变量注释l成员函数注释成员函数注释lJavadoc语法语法这这3种类型的区别在于它们的位置:种类型的区别在于它们的位置:l类注释放在类定义的前面类注释放在类定义的前面l成员变量注释放在成员变量的定义之前成员变量注释放在成员变量的定义之前l成员函数的注释放在成员函数的定义之前成员函数的注释放在成员函数的定义之前/* TestClass类的类注释类的类注释 */public class TestClass /* testVar的成员变量注释的成员变量注释 */ public int testVar; /* testFunc的成员函数
37、注释的成员函数注释 */ public void testFunc() . . . lJavadoc语法语法Javadoc只为公开级(只为公开级(public)和保护级()和保护级(protected)的成员函数或成员变量处理注释文档的成员函数或成员变量处理注释文档私有级(私有级(private)和默认的包级成员的注释文档不)和默认的包级成员的注释文档不会输出到最终文档里会输出到最终文档里lJavadoc语法语法类注释不同,一个包中的所有类,不管它们类注释不同,一个包中的所有类,不管它们的访问级是公开(可以从包外访问)或者默的访问级是公开(可以从包外访问)或者默认(只能从包内访问),它们的类注
38、释都会认(只能从包内访问),它们的类注释都会输出到文档中输出到文档中注释文档的标记:注释文档的标记:lHTML标记标记l以以“”打头的文档标记打头的文档标记lJavadoc语法语法注释文档中可以使用部分注释文档中可以使用部分HTML标记,这使得我们标记,这使得我们可以充分利用可以充分利用HTML的巨大威力的巨大威力例,下面的注释文档:例,下面的注释文档:/* 类名:类名:TestClass* * * 最后修改时间:最后修改时间:2004-03-01* */lJavadoc语法语法显示的效果:显示的效果:类名:类名:TestClass最后修改时间:最后修改时间:2004-03-01在在HTML语
39、言中,如果要换一行显示,必须语言中,如果要换一行显示,必须使用使用标记,仅仅回车是不行的标记,仅仅回车是不行的没有没有标记时,显示的效果如下:标记时,显示的效果如下:类名:类名:TestClass 最后修改时间:最后修改时间:2004-03-01lJavadoc语法语法文档标记:文档标记是以文档标记:文档标记是以“”打头的一类特殊标打头的一类特殊标记,它们具有不同的功能记,它们具有不同的功能see标记:作用是在类、成员变量或成员函数注释标记:作用是在类、成员变量或成员函数注释的底部给出一个的底部给出一个“See Also”(参见)条目,该条目(参见)条目,该条目指向另一个类、另一个成员变量或另
40、一个成员函数指向另一个类、另一个成员变量或另一个成员函数的注释的注释利用利用see标记,可以给出与当前条目相关的其它注标记,可以给出与当前条目相关的其它注释条目释条目lJavadoc语法语法see有四种使用格式:有四种使用格式:lsee 类名类名lsee 包名包名.类名类名lsee 类名类名#成员名成员名lsee 包名包名.类名类名#成员名成员名lJavadoc语法语法例:在例:在TestClass类的注释中添加参见条目:类的注释中添加参见条目:/* TestClass类的类注释类的类注释* * * 最后修改时间:最后修改时间:2004-03-01* * see JDemo*/public c
41、lass TestClass . . .lJavadoc语法语法显示效果如下:显示效果如下:lJavadoc语法语法在类在类TestClass的成员变量的成员变量testVar的注释之中加入了的注释之中加入了另一个参见条目,指向另一个参见条目,指向JDemo类的同名成员变量,类的同名成员变量,显示效果如下:显示效果如下:lJavadoc语法语法只能在类注释中使用的标记:只能在类注释中使用的标记:lversion 版本信息:表示当前的程序版本,版版本信息:表示当前的程序版本,版本信息由编程人员自行确定本信息由编程人员自行确定l必须在必须在javadoc命令中使用命令中使用-version参数参数lauthor 作者信息:包括作者的各种信息。如果作者信息:包括作者的各种信息。如果有多个作者,可以用一系列有多个作者,可以用一系列author标记,但它标记,但它们必须连续放置们必须连续放置l在在javadoc命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 帮助考生的监理工程师试题及答案
- 学术论文投资咨询工程师试题及答案
- 完善备考育婴师考试试题及答案清单
- 全方位支持的陪诊师考试试题及答案
- 动物行为矫正初步试题及答案
- 2024年人力资源管理师考前资料试题及答案
- 黑龙江省七台河市重点中学2024-2025学年高三下第11次大练习英语试题含解析
- 传感器与检测技术课件 项目一识别与选用传感器1.1 识别传感器
- 黑龙江省哈尔滨三十二中2025届高三历史试题周练试卷含解析
- 黑龙江省哈尔滨市尚志市达标名校2025年初三中考冲刺压轴卷(一)化学试题含解析
- 2024年山东省济南市莱芜区中考一模化学试题
- 人教B版新课标高中数学选择性必修第三册电子课本
- 广东省深圳市宝安区2022-2023学年八年级下学期期中语文试题
- 2024年房屋租赁合同电子版pdf
- 【高尔夫挥杆技术训练探究8700字(论文)】
- 国际航空货运代理实务
- 《咯血的诊治》课件2
- 火力发电厂消防知识培训课件
- MSOP(测量标准作业规范)测量SOP
- 仓库温湿度记录表
- 营养风险筛查(NRS2002)解读
评论
0/150
提交评论