java(九)【面向对象】静态的应用-工具类
静态的应用
每一个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用。
Qwe.java:
1 class Qwe 2 { 3 public static void main(String[] args) 4 { 5 int []arr ={5,6,7,3,2,4}; 6 //Tool t= new Tool(); 7 //int max= Tool.getMax(arr); 8 //System.out.println("max="+max); 9 Tool.print(arr); //打印数组 10 Tool.select(arr); //选择排序 11 Tool.print(arr); //打印出排序好的数组 12 } 13 }
Tool.java:
1 /* 2 虽然可以通过建立 Tool的对象使用这些工具,对数组进行操作,但是发现了问题: 3 1.对象是用于封装数据的,可是Tool对象并未封装特有数据 4 2.操作数组的每一个方法都没有用到Tool对象中的特有数据 5 6 这时就考虑,让程序更严谨,是不需要对象的 7 可以将Tool中的方法定义成static,直接通过类名调用 8 9 将方法静态后,可以方便于使用,但是该类还是可以被其他程序建立对象的 10 为了更加严谨,强制让该类不能建立对象 11 可以通过将构造函数私有化 12 */ 13 class Tool{ 14 //空参数构造函数,避免被建立对象而占用过多无用内存,声明为private类型,所以私有构造函数可以防止该类在外部被实例化 15 private Tool(){} 16 //获取数组中的最大值 17 public int getMax(int [] arr) 18 { 19 int max = 0; 20 for (int x=1;x<arr.length;x++) 21 { 22 if(arr[x]>arr[max]) 23 max=x; 24 } 25 return arr[max]; 26 } 27 //获取数组中的最小值 28 public int getMin(int [] arr) 29 { 30 int min = 0; 31 for (int x=1;x<arr.length;x++) 32 { 33 if(arr[x]<arr[min]) 34 min=x; 35 } 36 return arr[min]; 37 } 38 public void bub(int[] arr) //冒泡排序 39 { 40 for (int x= 0;x<arr.length-1;x++) 41 { 42 for (int y =0;y<arr.length-x-1;y++) 43 { 44 if (arr[y]>arr[y+1]) 45 {swap(arr, y, y+1);} 46 } 47 } 48 } 49 public static void select (int [] arr) //选择排序 50 { 51 for (int x=0; x<arr.length-1;x++) 52 { 53 for (int y=x+1 ;y<arr.length;y++) 54 { 55 if (arr[x]>arr[y]) 56 57 swap(arr,x,y); 58 } 59 } 60 } 61 private static void swap (int []arr,int a,int b) 62 { 63 int temp =arr[a]; 64 arr[a]=arr[b]; 65 arr[b]=temp; 66 } 67 public static void print(int []arr) //将数组输出 68 { 69 System.out.print("["); 70 for (int i = 0; i < arr.length; i++) { 71 if (i!=arr.length-1) 72 { 73 System.out.print(arr[i]+","); 74 } 75 else { 76 System.out.println(arr[i]+"]"); 77 } 78 } 79 } 80 }
打印结果:



浙公网安备 33010602011771号