Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1792400
  • 博文数量: 787
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-22 15:17
文章分类

全部博文(787)

文章存档

2008年(787)

我的朋友

分类:

2008-09-25 16:11:14

 什么是包

  Java中的包(Package)其实指的就是目录,它是为了更好地管理Java类(Class)和接口(Interface)。Java语言的包可以被另一个Java开发包所使用。如果我们要引用某个包中的类,用import关键字来标明即可。比如:

  import java.util.????

  date=new Date??  ????

  提示:import java.util.????表示java.util中的所有公有类和接口被引入到当前包。这里的??匹配符可以调入多个类名。

[@more@] 什么是包

  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盘下生成comchentest目录,并将编译结果保存在B.class中)。现在我们进入C??comchentest目录可以看到编译生成的Class文件也包含在内了。

  OK,现在这个包已经创建好了,这时需要你做的是把C??comchentest设置在你的环境变量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??comchentest目录下即可。要注意的是,A.java和B.java两个文件不可以放在相同目录下,这样就会出错。

  Java文档及Javadoc

  除了包之外,Java文档也是Java编程中非常重要的一个概念。Java文档就是Java程序的帮助文档。一般情况下,我们先写好帮助文档,再利用工具Javadoc来生成相应的文档。Javadoc是JDK提供的一个文档生成工具,它利用Java编译程序Javac对程序代码源文件中的声明和文档注释进行语法分析,并在默认情况下生成一组HTML文档来描述类、内部类、接口、构造函数、方法和域。Javadoc注释以“/????”开始,以“??/”结束,里面可以包含普通文本、HTML标记和Javadoc标记。Javadoc只处理源文件中在类/接口定义、方法、域、构造器之前的注释,忽略其它地方的注释。

  掌握Javadoc

  现在我们先用一个例程来说明Javadoc标记的意义:

  /????

  ??我的JavaDoc测试程序--JavaDocTest

  ??@author

  ??test

  ??@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标记 使用HTML标记产生链接。@see package.class#member Label。

  @version指定版本信息。

  @see标记是比较复杂的。@see″string″为“string”添加文本项,不产生任何链接。@see

  @param标记用来描述参数。

  @return标记用来描述返回值。

  @link为内联标记,内联标记的通常格式是:??@linkpackage.class#member label??

  提示:Label是位于注释中间的文本,package.class#member指向一个具体的类或者方法。以下是一些例子:

  链接到同一类的属性,使用:@link#KEY

  链接到同一类的方法,使用:??@link#getComponentAt??int??getComponentAt

  链接到其它类,使用@linkjava.util.Map Map??



--------------------next---------------------

阅读(586) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~