对象是用于封装数据的,如果一个对象并未封装特有数据,那么这样的情况下就使用静态static(下面例子说明了这个) 静态方法可以直接使用类调用,这样就不用在使用“new”去创建对象,这样节省了很多内存;
但是静态中不能使用 this 和super
静态方法可以用来制作工具类,封装完,打成jar包,以后可以直接调用
例子:
这是利用静态方法制作的工具类
(下面有调用工具类的使用类)
public class ArrayTool{ /** 空参数构造函数 */ private ArrayTool(){} //求最大值函数
public static int getMax(int[] arr){ int max=0; for(int x=1;x<arr.length;x++){ if(arr[x]>arr[max]) max=x; } return arr[max]; } //求最小值函数
public static int getMin(int[] arr){ int min=0; for(int x=1;x<arr.length;x++){ if(arr[x]<arr[min]) min=x; } return arr[min]; } //查找排序 public static void SearchSort(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); } } } } //冒泡排序
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); } } } } //对排序中的重复代码(比较部分)进行封装 // 只对本类中排序方法使用,不对外提供,进行private 私有化 /** 给数组中元素进行位置的置换 */ private static void swap(int[] arr,int a,int b){ int temp =arr[a]; arr[a]=arr; arr=temp; } 用于打印数组中的元素,打印形式是【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]+"]"); } } } }
调用工具类:
ArrayToolDemo://调用工具类; 静态类调用 class ArrayToolDemo{ public static void main(String [] args)//new String[] { int [] arr={3,9,5,7,19,6}; /* ArrayTool tool = new ArrayTool(); int max = tool.getMax(arr); System.out.println(max);//取最大值 tool.PrintArray(arr);//排序前数组打印 tool.SearchSort(arr);//调用排序方法 tool.PrintArray(arr);//排序后数组打印 */ int max = ArrayTool.getMax(arr); System.out.println(max);//取最大值 } } |