黑马程序员技术交流社区

标题: 如何生成自己的API [打印本页]

作者: @文瑞    时间: 2014-4-24 10:07
标题: 如何生成自己的API
本帖最后由 @文瑞 于 2014-4-24 22:09 编辑

在Java基础学习中,编写了很多代码,虽然很基础,但是为了在日后方便查看,想定义一个API,就像jdk文档形式的,不知道该如何定义,请教前辈们,你们有没有弄过啊?
作者: @文瑞    时间: 2014-4-24 10:08
尝试过用javadoc生成,但是那样的话生成的只是单个的类的文档,想知道如何把所有的都集中到一个API中
作者: @文瑞    时间: 2014-4-24 20:57
为什么没有人肯帮帮忙呢?:'(
作者: 姜姗姗    时间: 2014-4-24 21:20
  1. 在DOS下使用  //javadoc -d myhelp -author -version ArrayTool.java   
  2. ArrayTool.java 是表明要把哪个java文件生成文档, 一般都是工具类才要生成文档,工具类的方法上都要加上文档注释才能生成。
  3. 比如
  4. /**
  5. 这是一个可以对数组进行操作的工具类,该类中提供了,获取最值,排序等功能。
  6. @author JiangShanShan
  7. @version V1.0

  8. */
  9. public class ArrayTool {
  10.         /**
  11.         空参数构造函数。
  12.         */
  13.         private ArrayTool(){};//防止别人new对象
  14.         /**
  15.         获取一个整形数组中的最大值。
  16.         @param arr 接收一个int类型的数组。
  17.         @return 会返回一个该数组中最大值。
  18.         */
  19.         //获取最大值
  20.         public static int getMax(int arr []){//一定要加上static,对方通过类名调用该方法,在创建对象之前,所以必须得定义成静态的
  21.                 int maxIndex = 0;//定义变量,记录最大值的角标
  22.                 for(int x=0;x<arr.length;x++){//要想挨个比值,必须先循环遍历拿出数组里的值,所以先遍历后比较
  23.                         if(arr[x]>arr[maxIndex])
  24.                         maxIndex = x;
  25.                                                
  26.                 }               
  27.                 return arr[maxIndex];
  28.         }
  29.         /**
  30.         获取一个整形数组中的最小值。
  31.         @param arr 接收一个int类型的数组。
  32.         @return 会返回一个该数组中最小值。
  33.         */
  34.         //获取最小值
  35.         public static int getMin(int arr[]){
  36.                 int minIndex = 0;
  37.                 for(int x=0;x<arr.length;x++){
  38.                         if(arr[x]<arr[minIndex])
  39.                                 minIndex = x;
  40.                 }
  41.                 return arr[minIndex];
  42.         }
  43.        
  44.         /**
  45.         给int数组进行选择排序。
  46.         @param arr 接收一个int类型的数组。
  47.         */
  48.         //选择排序
  49.         public static void selectSort(int arr []){//给数组排序,没有返回值
  50.                 for(int x=0;x<arr.length-1;x++){
  51.                         for(int y=x+1;y<arr.length;y++){
  52.                                 if(arr[x]>arr[y])
  53.                                         changePosition(arr,x,y);
  54.                         }
  55.                        
  56.                 }
  57.                
  58.                
  59.                
  60.         }
复制代码

作者: linweiwen    时间: 2014-4-24 21:51
本帖最后由 linweiwen 于 2014-4-24 22:07 编辑

楼主,或许你跟我以前想的一样,
一个java原文件里面,有很多个class,你想用javadoc工具,
把它们全都放到一个API文档里面?

你可以这样写:

javadoc -private -d ZhuShi ZhuShi.java

只要加上private,那么这个java文件里面的类,都会在生产的文档中显示出来。

——————————————————————————————————————————

再复杂一点的用法:
  1. package com.itheima1;
  2. public class ZhuShi
  3. {
  4.         /**
  5.         * ZhuShi类的main方法
  6.         * @param args 传入的参数
  7.         * @return 返回空值
  8.         */
  9.         public static void main(String[] args){
  10.                         System.out.println("HelloWorld!");//单行注释
  11.         }
  12. }


  13. class print1
  14. {        /**
  15.         * print1类
  16.         * @param s 传入的参数
  17.         * @return 返回空值,打印
  18.         */
  19.         public void print(String s){
  20.                         System.out.println(s);//单行注释
  21.         }
  22. }


  23. class print2
  24. {        /**
  25.         * print2类
  26.         * @param s 传入的参数
  27.         * @return 返回空值,打印
  28.         */
  29.         public void print(String s){
  30.                         System.out.println(s);//单行注释
  31.         }
  32. }
复制代码
其它两个文件就不贴了,
用的命令行:

javadoc -private -d ZhuShi ZhuShi.java print.java HelloWorld.java

文档就会生成出这个样子,




作者: @文瑞    时间: 2014-4-24 22:06
linweiwen 发表于 2014-4-24 21:51
楼主,或许你跟我以前想的一样,
一个java原文件里面,有很多个class,你想用javadoc工具,
把它们全都放到 ...

恩 , 恩,就是这样,我试试,谢谢!
作者: @文瑞    时间: 2014-4-24 22:07
姜姗姗 发表于 2014-4-24 21:20

这样是单个类的文档,不过同样谢谢!
作者: 元亨利贞    时间: 2014-4-24 23:12
本帖最后由 元亨利贞 于 2014-4-24 23:13 编辑

有个jd2chm.exe工具,自动生成.chm文档我的这个blog 里面有讲解http://blog.csdn.net/yuanhenglizhen110/article/details/9245737
作者: @文瑞    时间: 2014-4-25 09:23
元亨利贞 发表于 2014-4-24 23:12
有个jd2chm.exe工具,自动生成.chm文档我的这个blog 里面有讲解http://blog.csdn.net/yuanhenglizhen110/ar ...

谢谢,我看了,试试
作者: dongdong5982    时间: 2014-4-25 09:33
我也是来学习的,我也想知道
作者: 小马初长成    时间: 2014-4-25 16:26
  1. /*
  2.    文档注释
  3. */

  4. /**
  5. 此类是对数组进行取最值排序等操作的
  6. @author 张三  
  7. @version 1.0
  8. */
  9. public class ArrayOperate{
  10.         private ArrayOperate(){}//将构造函数私有化,否则提取中会默认有构造器和说明
  11.         /**
  12.         取int数组里面的最大值
  13.         @param arr 传入一个int数组
  14.         @return 返回一个int数值
  15.         */
  16.         public static int max(int[] arr){
  17.                 int max=arr[0];
  18.                 for(int i=0;i<arr.length;i++){
  19.                         if(arr[i]>max){
  20.                         max=arr[i];
  21.                         }
  22.                 }
  23.                 return max;
  24.         }
  25.         /**
  26.         取int数组里面的最小值
  27.         @param arr 传入一个int数组
  28.         @return 返回一个int数值
  29.         */
  30.         public static int min(int[] arr){
  31.                 int min=arr[0];
  32.                 for(int i=0;i<arr.length;i++){
  33.                         if(arr[i<min]){
  34.                         min=arr[i];
  35.                         }
  36.                 }
  37.                 return min;
  38.         }

  39.         /**
  40.         对传入的int数组里面进行冒泡排序
  41.         @param arr 传入一个int数组
  42.         */
  43.         public static void maoSort(int[] arr){//冒泡排序
  44.                 for(int i=0;i<arr.length-1;i++){
  45.                         for(int j=0;i<arr.length-1;i++){
  46.                         replace(arr,j,j+1);
  47.                         }
  48.                 }

  49.         }
  50.         /**
  51.         对传入的int数组里面进行选择排序
  52.         @param arr 传入一个int数组
  53.         */
  54.         public static void xuanzeSort(int[] arr){//选择排序
  55.                 for(int i=0;i<arr.length-1;i++){
  56.                         for(int j=i+1;j<arr.length;j++){
  57.                                 replace(arr,i,j);
  58.                         }
  59.                 }
  60.         }
  61.         //私有化方法无需注释,也无法注释
  62.         private static void replace(int[] arr,int a,int b){
  63.                 if(arr[a]>arr[b]){
  64.                         int t=arr[a];
  65.                         arr[a]=arr[b];
  66.                         arr[b]=t;
  67.                 }
  68.         }

  69. }
  70. /*
  71. 以上完成后 在命令中进提取
  72. 如E:\java 目录下  //创建目录,作者,版本
  73. E:\java>javadoc -d这个是dir的缩写意思是创建
  74. Mydoc这个是创建文件夹 -author这个是作者   
  75. -version这个是版本   ArrayOperate.java最后跟上你的java文件名.java

  76. E:\java>javadoc -d Mydoc -author -version ArrayOperata.java       
  77.                                                         
  78. */

  79. //提取成功后打开  index.html查看



复制代码

作者: peterbu    时间: 2014-6-18 18:36
好东西,要收藏啊!!!
作者: 为梦想而活着    时间: 2014-6-19 00:12
小马初长成 发表于 2014-4-25 16:26

请问子啊eclipse中如何生成对应的API呢?
作者: 王广丛    时间: 2014-6-23 22:52
linweiwen 发表于 2014-4-24 21:51
楼主,或许你跟我以前想的一样,
一个java原文件里面,有很多个class,你想用javadoc工具,
把它们全都放到 ...

总结的好,鼓掌
作者: 为梦想而活着    时间: 2014-6-24 11:19
linweiwen 发表于 2014-4-24 21:51
楼主,或许你跟我以前想的一样,
一个java原文件里面,有很多个class,你想用javadoc工具,
把它们全都放到 ...

那用eclipse怎么生成呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2