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 }

 打印结果:

    

 

posted @ 2015-08-27 10:00  花花妹子。  阅读(121)  评论(0)    收藏  举报