1:工具类的定义:
就是把一些需要用的工具方法定义到一起,以方便长期使用;
2:下面我们以ArrayTool的对象使用这些工具方法,对数组进行操作;
发现问题:
1)对象时用来封装数据的,可是ArraToole并未封装特有数据;
2)操作数组的每一个方法都没有用到ArrayTool的特有数据;
3)可以使用static静态方法将调用简化,也可以使用private的方法私有化,让别 人不可以随机调用对象
3:当然为了使用工具类方法简便,首先还是应该定义个工具类使用说明书:
工具类说明书的制作方法:
1)文档注释的生成规则:
@author:作者
@version:版本号
@param形参名:(函数的)形参列表
@return返回值:(函数的)返回值
@since**:从**(一般是JDK版本)开始
2)生成格式:javadoc-d生成文件路径 -author -version有文档注释的java文件
如图
生成目标文件夹
再打开index:就可以读出工具类的功能,作者,版本号;
4:工具类的使用方法:
前提:必须将ArrayTool.class文件发送给其他人,其他人只要将该文件设置到classpath 路径下,就可以使用该工具类
1)设置工具类为public类型的可以直接建立对象,然后调用方法
缺点:但将方法都静态后可以便于使用,但是该类还是可以被其他程序建立对象的
2)将构造函数私有化完成;
5:代码体现工具类:
/**
*这是一个个可以对数组进行操作的工具类,该类中提供了可以获取最值,排序等
*功能。
*@author long
*@version v1.1
*/
public class ArrayTool
{
/**
空参数构造函数
*/
private ArrayTool(){}
/**
*获取一个整形中的最大值
*@param arr 接受一个int类型的数组。
*@return 会返回一个该数组中的最大值
*/
public static int getMax(int[] arr)
{
int Max=0;
for(int x=1; x<arr.length; x++)
{
if(arr[Max]<arr[x])
{
Max=x;
}
}
return arr[Max];
}
/**
*获取一个整形中的最小值
*@param arr 接受一个int类型的数组。
*@return 会返回一个该数组中的最小值
*/
public static int getMin(int[] arr)
{
int Min=0;
for(int x=1;x<arr.length;x++)
{
if(arr[Min]>arr[x])
{
Min=x;
}
}
return arr[Min];
}
/**
*给int数组进行排序
*@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);
}
}
}
}
/**
*给数组中的元素进行位置的置换
*@param arr 接受一个int 类型的数组
*@param a 要置换个位置
*@param b 要置换的位置
*/
public static void swap(int[] arr,int a,int b)
{
int temp;
temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
/**
*给int数组进行冒泡排序
*@param arr 接受一个int类型的数组
*/
public static void bubbleSort(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=0;y<arr.length-x-1;y++)
{
if(arr[y]>arr[y+1])
{
swap(arr,y,y+1);
}
}
}
}
/**
*用于打印数组中的元素,打印形式是:【element1,element2,。。。】
*/
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.println(arr[x]+"]");
} }}