在我们使用JAVA编程的过程中,我们经常会导入一些包利用里面一些类来进行便捷的操作,例如使用Scanner类,自带的lang包里的String类,Math类。当我们想要从键盘接受一些数据的时候,我们首先导入Scanner包,然后必须创建一个对象来,比如接受一个整型输入,就需要定义一个整型变量来进行接受:
Scanner sc = new Scanner(System.in);//这里面的System.in其实也是一个工具类方法
int a = sc.nextInt();
System.out.println(a);
这些方法就是叫做工具类。这些方法是JDK进行封装好直接提供给我们的,但是需求是多种多样,我们无法在自带的包里找到所有我们想要的方法,所以,在我们需要的时候,我们可以自己来进行工具类的编写。
工具类
在一个类中,没有维护什么数据,没有任何的成员变量,相当于是一个工具。类中就都是一些静态方法,快速的解决一些常见的问题。
我们下面就来写一个对数组进行操作的工具类:
class ArrayTool{
//遍历数组元素
public static void traverse(int[] arr) {
System.out.print("[");
for(int i = 0;i<arr.length-1;i++) {
System.out.print(arr[i]+",");
}
System.out.println(arr[arr.length-1]+"]");
}
//求数组中最大值
public static int Max(int[] arr) {
int max = 0;
for(int i =0;i<arr.length;i++) {
if(arr[i]>max)
max = arr[i];
}
return max;
}
//求数组最小值
public static int Min(int[] arr) {
int min = 10000;
for(int i =0;i<arr.length;i++) {
if(arr[i]<min)
min = arr[i];
}
return min;
}
//交换数组中两个位置的元素
public static int[] swap(int[] arr,int x,int y) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
return arr;
}
//反转数组
public static int[] reverse(int[] arr) {
for(int i = 0;i<arr.length/2;i++) {
swap(arr,i,arr.length-i-1);
}
return arr;
}
}
测试类:
public class 工具类 {
public static void main(String[] args) {
ArrayTool a = new ArrayTool();
int[] arr = {13,44,22,35,56,39};
a.traverse(arr);
int max = a.Max(arr);
System.out.println("最大的数为:"+max);
int min = a.Min(arr);
System.out.println("最小的数为:"+min);
arr = a.swap(arr, 3, 5);
a.traverse(arr);
arr = a.reverse(arr);
a.traverse(arr);
}
}
结果:
[13,44,22,35,56,39]
最大的数为:56
最小的数为:13
[13,44,22,39,56,35]
[35,56,39,22,44,13]
像上面这个例子,就是一个简单的工具类的编写。这些操作还比较简答, 随着编程深度的加深,会有各种复杂的需求需要写成工具类供我们使用。