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
类和所有需要文档注释的成员必须设置为public,才能文档化。
4.调用该数组工具类,即调用它的class文件:
设置classpath,告诉java它的位置。
classpath = .;d:\myclass