2.4Java面向对象-数组工具类创建使用过程

1.数组工具类

//数组工具类,(为了给别人使用class文件,需要写文档注释)

/**
    建议一个用于操作数组的工具类,其中包含常见的对数组操作的函数如:最值,排序等。
    @author 辰生
    @version v1.0
*/ 
public class ArrayTool    //想要该类文档化,就类和所有需要文档注释的成员必须设置为public,此时类名和文件名必须一致
{//没有成员变量,对象没有意义

    private ArrayTool(){} ; //该类中的方法都是静态的,所以该类是不需要创建对象的。
    //为了保证不让其他程序创建该类对象,可以将该类的构造函数私有化。

/**
    获取整型数组的最大值。
    @param arr 接受一个元素为int类型的数组
    @return 该数组的最大的元素值
*/
public  static int getMax(int[] arr)
    {
        int max = arr[0];
        for(int x:arr)
            if(x >max)
                max = x;
        return max;
    }
/**
        获取指定元素在指定数组中的索引。
        @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;
    }

/**
    对数组进行选择排序
    @param arr 接受一个元素为int类型的数组
*/
    public static void selectSort(int [] arr)
    {
        for (int x = 0;x < arr.length - 1; x++ )
        {
            for (int y = x+1; y < arr.length; y++)
            {
                if (arr[x] > arr[y])
                    swap(arr, x, y);
            }
        }
    }

/** 文档注释不接收private

        用于给数组进行元素的位置置换。
        @param arr 接受一个元素为int类型的数组
        @param x 第一个元素的索引
        @param y 第二个元素的索引
*/
     private static void swap(int[] arr, int x, int y)
    {
            int temp = arr[x];
            arr[x] = arr[y];
            arr[y] = temp;
    }


/**
        将int数组转换成字符串。格式是:[e1,e2,...]
        @param arr 接受一个元素为int类型的数组
        @return 返回该数组的字符串表现形式。
*/
    public static String arrayToString(int[] arr)
    {
        String str = "[";
        for (int x = 0; x < arr.length; x++)
        {
            if(x != arr.length -1)
                str += arr[x] + ",";
            else
                str += arr[x] + "]";
        }
        return str;
    }

}

2.主类:

/*static举例:

求数组最大值
*/

class ArrayToolDemo
{
    /*
        主函数保证程序的独立运行
    */
    public static void main(String[] args)
    {
        int[] arr = {4,8,2,9,7,6};
    //  ArrayTool tool = new ArrayTool(); //因为ArrayTool类中没有成员变量,所以对象创建没有意义(这类类称为工具类,不多),
    //所以工具类里的都设置静态函数,直接通过类名调用。
    //不需要创建对象,所以可以通过设置不让对象访问它的构造函数,就无法创建类。即把构造函数设置为私有。


        int max = ArrayTool.getMax(arr);    
        //java编译器发现该类中用到其他类,会去classpath路径或者当前路径去找这个类,
        //如果没有,会继续去找和这个类名相同的.java文件,然后编译产生这个class文件。

        System.out.println("max = " + max); 

        int index =ArrayTool.getIndex(arr, 10);
        System.out.println("index = " + index); 

        ArrayTool.selectSort(arr);
        System.out.println("arr[] : " + ArrayTool.arrayToString(arr)); 

    }


    /**
    获取整型数组的最大值。不推荐放在主类里
    */
/*
    static int getMax(int[] arr)
    {
        int max = arr[0];
        for(int x:arr)
            if(x >max)
                max = x;
        return max;
    }*/
}

3.生成文档注释:javadoc命令

javadoc -d myhelp -author -version ArrayTool.java

javadoc命令
类和所有需要文档注释的成员必须设置为public,才能文档化。

4.调用该数组工具类,即调用它的class文件:
设置classpath,告诉java它的位置。

classpath = .;d:\myclass
发布了36 篇原创文章 · 获赞 0 · 访问量 4581
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章