什么是包
java中的包(package)其实指的就是目录,它是为了更好地管理java类(class)和接口(interface)。java语言的包可以被另一个java开发包所使用。如果我们要引用某个包中的类,用import关键字来标明即可。比如:
| import java.util.???? date=new date?? |
提示:import java.util.????表示java.util中的所有公有类和接口被引入到当前包。这里的??匹配符可以调入多个类名。
常用的java标准包
jdk为我们提供了很多标准的java类和接口,这些包是写java程序所必需的,知道了每种包所包含的类和接口,并且熟悉这些类和接口是每个java编程人员都应该掌握的基本技能。
java中常用的包有:java.applet、java.awt、java.i、java.lang、java.net和java.util等等。其中java.applet包含了一些设计小应用程序(applet)的类和接口;java.awt是一个窗口工具箱包(awt?? abstract window toolkit),里面是一些gui界面相关的类;java.io包支持输入输出,比如文件输入流类:fileinputstream等;java.lang包含线程、异常、系统、整数等相关的类,是java程序中默认加载的一个包;java.net这个类支持tcp/ip网络协议,并包含socket类及url相关的类,是网络编程中要使用的;java.util包含一些程序的公用类,如date??dictionary等等。
除了上面提到的一些标准包之外,还有很多其它的包,比如数据库编程时我们可能需要使用java.sql包,写网络程序还会用到java.rmi包(rmi?? remote method invocation)等。另外,javax.??包是一些标准包的扩展,常用的包有:javax.swing、javax.sound。
自己动手创建包
java中的包是可以自己创建的。我们可以将很多功能相近的类和接口放在同一个包中,以方便管理和使用。
创建包的基本方法
1.定义public类;
2.首句加“package 包名”;
3.将java文件生成的class放在以包名为目录名的目录中??
4.在其它程序中用“import 包名”就可以存取此包中的所有public类。
包的创建和使用
| //filename?? b.java package com.chen.test?? //定义一个包 public class b?? //定义一个类 public void add??int i??int j???? //两个数求和,并输出 system.out.println??i+j???? |
上面的代码便是为了创建一个简单的包:com.chen.test,我们将这个文件命名为b.java。现在运行javac -d c??/ b.java编译该包(该命令在c盘下生成com/chen/test目录,并将编译结果保存在b.class中)。现在我们进入c??/com/chen/test目录可以看到编译生成的class文件也包含在内了。
ok,现在这个包已经创建好了,这时需要你做的是把c??/com/chen/test设置在你的环境变量classpath里。
如何调用包
现在我们再用一个小程序来调用上面创建的包:
| //filename?? a.java import com.chen.test.????//引入刚才创建的包 public class a?? public static void main??string???? args???? b test = new b?????? test.add??6??8???? //用add????调用自定义包 |
将上面的java代码保存为c??/a.java??然后编译:javac c??/a.java。
提示:对于包文件b.java,你可以不编译??而只将它放到c??/com/chen/test目录下即可。要注意的是,a.java和b.java两个文件不可以放在相同目录下,这样就会出错。
java文档及javadoc
除了包之外,java文档也是java编程中非常重要的一个概念。java文档就是java程序的帮助文档。一般情况下,我们先写好帮助文档,再利用工具javadoc来生成相应的文档。javadoc是jdk提供的一个文档生成工具,它利用java编译程序javac对程序代码源文件中的声明和文档注释进行语法分析,并在默认情况下生成一组html文档来描述类、内部类、接口、构造函数、方法和域。javadoc注释以“/????”开始,以“??/”结束,里面可以包含普通文本、html标记和javadoc标记。javadoc只处理源文件中在类/接口定义、方法、域、构造器之前的注释,忽略其它地方的注释。
掌握javadoc
现在我们先用一个例程来说明javadoc标记的意义:
| /???? ??我的javadoc测试程序--<b>javadoctest</b> ??@author <a href=http??//www.csdn.net>warton2003 西安</a> ??<br><font color=red>test</font><??--这里可以嵌入html??本句为html注释??--> ??@version 0.1 2004/01/01 ??/ public class javadoctest ?? /???? ??在main?? ??中要使用字符串 ??@see #main??java.lang.string?????? ??/ static string sdisplay?? /???? ??显示javadoc测试 ??@param args 命令行参数 ??@return 没有返回值 ??/ public static void main??string args?????? ?? sdisplay = ″javadoc测试″ ?? system.out.println?? sdisplay ???? |
在这个java程序里面,使用了大量的javadoc标记、文本以及html标记。javadoc标记以“/????”开始,表明这些都是java代码的注释。“@”开头的标记就是javadoc标记。
javadoc标记有两种:独立(standalone)标记和内联(inline)标记。独立标记也就是那些常见的标记,如@param、@return和@author等;另一种类型的标记是内联标记??这种标记采用??@tag??的形式?? 它允许开发者创建超级链接从注释部分链接到其它的javadoc页面或者本页面的其它地方。
提示:在java源程序里正确使用javadoc标记是非常必要的注释习惯,将有助于javadoc自动以源代码文件生成完整的格式化api文档。
ok,那么我们先看看javadoc是如何生成漂亮的文档!将上面的代码保存到javadoctest.java并编译。
运行:javadoc -private -d doc -auth
or -version javadoctest.java
这时,javadoc程序会根据javadoctest.java生成一个doc目录,里面有很多html文件,这些就是javadoc生成的api帮助文档。
javadoc命令行语法
光会使用标记还不能很好利用javadoc提供的功能,必须能使用它的命令行才行。最后向大家介绍一下简单的javadoc命令。
javadoc的命令行语法如下:
| javadoc options packagenames sourcefiles @files |
提示:对于一般的应用,我们只须使用javadoc yourjavafile.java这样的命令行生成帮助文档就行了。如果你需要定制帮助文档,才会用到参数,一般情况下你可以使用javadoc help命令来查看javadoc的帮助文档。
总之,javadoc提供了完整规范的api文档功能。在软件项目管理和开发中,合理地使用javadoc不仅可以减少开发时的文档工作量,提高效率,而且还非常有利于将来软件的修改和维护。
javadoc标记的一些详细说明:
@author指定生成文档中的“作者”项,可以指定多个author。在左面的代码中,author后面还加了一个html标记<a>,用来链接url。<br><font>都是html标记,<??-- -->则是html注释。
@version 指定版本信息。
@see标记是比较复杂的。@see ″string″ 为“string”添加文本项,不产生任何链接。@see <a href=″url#value″>label</a> 使用html标记产生链接。@see package.class#member label。
@param标记用来描述参数。
@return标记用来描述返回值。
@link为内联标记,内联标记的通常格式是:??@linkpackage.class#member label??
提示:label是位于注释中间的文本,package.class#member指向一个具体的类或者方法。以下是一些例子:
链接到同一类的属性,使用:@link#key
链接到同一类的方法,使用:??@link#getcomponentat??int??getcomponentat
链接到其它类,使用@linkjava.util.map map??
闽公网安备 35060202000074号