面向对象-数组工具

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

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中。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值