面向对象-数组工具

来源:互联网 发布:xpath获取端口号 编辑:程序博客网 时间:2024/06/03 21:38

工具类:类里全是静态的方法,因为这种类只提供工具方法,而不封装特有数据。
由于在这种类里不需要创建对象,但是又由于类里有默认的构造函数,它可以创建对象,为了防止其他程序用该类创建无意义的对象,强制它不能创建对象,可以将构造函数私有化。

javadoc
  javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过javadoc就可以同时形成程序的开发文档了。javadoc工具在jdk的bin目录下。
工具类编写出来后可以在其他地方直接使用。但是需要通过javadoc来形成开发文档供阅读才能知道如何使用这个工具类。这个前提是在代码中添加文档注释。格式必须是/* 代码 /
要将一个类进行文档化,该类必须是公共(public)的。一个类是公共的,那么文件名和类名必须一致。类被提升为public后,权限更大。
在dos窗口中输入:
javadoc -d mydir -author -version ArrayTool.java
-d 输出文件文件的目标目录 没有这个目录就新建了一个目录这里是新建了mydir目录)
打开mydir目录就有index.html文件,里面就是这个类的描述文档。

/**建立一个用于操作数组的工具类,其中包含着常见的对数组操作的函数如:最值,排序等。@author 哼哼@version 1.0*/public class ArrayTool{//类里面没有成员变量,所有的方法里面也没有访问特有的数据,所以可以用静态    private ArrayTool(){}//构造函数私有化,不能用该类创建对象    /**    获取整形数组的最大值.    @param arr 接收一个元素为int类型的数组。    @return 该数组的最大元素值。    */    public static int getMax(int[] arr)    {        int maxindex=0;        for(int i=1;i<arr.length;i++)        {            if(arr[i]>arr[maxindex])            {                maxindex=i;            }            return maxindex;        }    }    /**    对数组进行选择排序    @param arr 接收一个元素为int类型的数组。    */    public static void selectSort(int[] arr)    {        for(int i=0;i<arr.length-1;i++)        {            for(int j=i+1;j<arr.length-1;j++)            {                if(arr[i]>arr[j])                    swap(arr,i,j);            }        }    }    /**    用于给数组进行元素的位置置换。其实这个注释不用写,因为此函数是私有的。    @param arr 接收一个元素为int类型的数组。    @param a    @param b    */    private static void swap(int[] arr,int a,int b)    {        int temp=arr[a];        arr[a]=arr[b];        ar[b]=temp;    }    /**    获取指定元素在指定数组的索引.    @param arr 接收一个元素为int类型的数组。    @param key 要找的元素。    @return 返回该元素第一次出行的位置,如果不存在返回-1。    */    public static int getIndex(int[] arr,int key)    {        for(int x=0;x<arr.length;x++)        {            if(arr[x]==key)                 return x;        }        return -1;    }    /**    将int数组转换为字符串。格式是:e1,e2,...    @param arr 接收一个元素为int类型的数组。    @return 返回该数组的字符串表现形式。    */    public static String arrayToString(int[] arr)    {        String str="";//此时str的已经赋值,不是null        for(int x=0;x<arr.length;x++)        {            if(x!=arr.length-1)                str=str+arr[x]+",";            else                str=str+arr[x];        }        return str;    }   }
class ArrayToolDemo{    public static void main(String[] args)    {        int arr={4,5,3,78,6,7};        //ArrayTool tool=new ArrayTool();        //int max=tool.getMax(arr);        int max=ArrayTool.getMax(arr);        System.out.println("max="+max);        //int index=tool.getIndex(arr,10);        int index=tool.getIndex(arr,10);        System.out.println("index="+index);    }}

注意:ArrayToolDemo类调用ArrayTool.class时要注意ArrayTool.class所在的路径,在dos窗口可以临时修改环境变量:set classpath=.;c:myclass或者set classpath = .%class
其中,;表示当前目录,后面的是指定的某一个目录。(这里是文件在两个目录里,需要将两个目录都加到classpath中。)

原创粉丝点击