封装的应用【example_Array工具】

时间:2023-03-10 03:33:51
封装的应用【example_Array工具】

定义一个数组工具【ArrayTool】封装其方法,ArrayDemo调用数组工具
ArrayTool

 package new_Object;
 //封装多个个功能
 class ArrayTool{
     //1==>获取最值
     public static int getMax(int []Arr){
         int maxIndex=Arr[0];
         for (int i = 1; i < Arr.length; i++) {
             if (Arr[i]>Arr[maxIndex]){
                 maxIndex=Arr[i];
             }
         }
             return Arr[maxIndex];
     }

     //2==>求角标
     public static int getIndex(int []Arr,int key){
         for (int i = 0; i < Arr.length; i++) {
             if (Arr[i]==key) {
                 return i;
             }
         }
         return -1;//没找到
     }

     //3,==>乘法表
     public static void printfCFB(){
         for (int i = 1; i <=9; i++) {
             for (int j = 1; j <=i; j++) {
                 System.out.print(i+"*"+j+"="+i*j+"\t");
             }
             System.out.println();
         }
     }
     //4,==>选择排序
     //打印数组
     public static  void Printf_Arr(int []Arr){
            System.out.print("");
            for (int i = 0; i < Arr.length; i++) {
             if (i!=Arr.length-1) {
                 System.out.print(Arr[i]+"、");
             }else
                 System.out.println(Arr[i]+"");
     }
 }
     public static void select_Sort(int []Arr){
         for (int i = 0; i < Arr.length-1; i++) {
             for (int j = i+1; j < Arr.length; j++) {
             /*条件Arr[i]>Arr[j]==>Arr[i]<Arr[j] 则是从大到小排序*/
                 if (Arr[i]>Arr[j])
                     swap(Arr ,i,j);
             }
         }
     }
     //swap封装置换数值
     private static void swap(int []Arr,int a,int b){
         int temp=Arr[a];
         Arr[a]=Arr[b];
         Arr[b]=temp;
     }
     //5,==>遍历数组
     public static void show(int Arr[]){
         for (int i = 0; i < Arr.length; i++) {
             System.out.println("Arr["+i+"]="+Arr[i]);
         }
     }
 }

ArrayDemo调用ArrayTool

 package new_Object;
 //方法封装成对象
 public class ArrayToolDemo{
     public static void main(String[] args) {
         int []Arr={1,2,4,6,8};
         //static修饰的成员可直接被类名所调用==>类名.静态成员
         int max=ArrayTool.getMax(Arr);
         System.out.println("max="+max);
         System.out.println("--------------------");
         int getIndex=ArrayTool.getIndex(Arr,8);
         System.out.println("getIndex="+getIndex);
         System.out.println("--------------------");
         ArrayTool.printfCFB();
         System.out.println("--------------------");
         System.out.print("排序前:");
         ArrayTool.Printf_Arr(Arr);
         ArrayTool.select_Sort(Arr);//调用排序方法
         System.out.print("排序后:");
         ArrayTool.Printf_Arr(Arr);
         System.out.println("--------------------");
         ArrayTool.show(Arr);
     }
 }

==========================run===========================

max=8
--------------------
getIndex=4
--------------------
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
--------------------
排序前:1、2、4、6、8
排序后:1、2、4、6、8
--------------------
Arr[0]=1
Arr[1]=2
Arr[2]=4
Arr[3]=6
Arr[4]=8

由此例子更进一步理解封装