1. 程式人生 > 其它 >面向物件(9_1):製作工具類

面向物件(9_1):製作工具類

面向物件(9):製作工具類

1、例:遍歷陣列、輸出陣列元素中的最大值

public class ArrayDemo {
    public static void main(String[] args) {
        //定義一個數組
        int[] arr = {12,27,36,68,34,72,88};
        //遍歷陣列
        for(int i =0;i<arr.length;i++){
            if(i==arr.length-1){
                System.out.print(arr[i]+"]");
            } else if(i==0){
                System.out.print("["+arr[i]+",");
            }else{
                System.out.print(arr[i]+",");
            }
          }
        System.out.println();
        
          //需求:輸出陣列中的最大值
        int max = arr[0];
        for(int i =0;i<arr.length;i++){
            if(arr[i]>max){
                max = arr[i];
            }
        }
        System.out.println("陣列中的最大值為:"+max);
        }
    }
            執行結果為:
                    [12,27,36,68,34,72,88]
                    陣列中的最大值為:88

                    Process finished with exit code 0

將來如果程式碼中有很多地方都需要遍歷陣列、求陣列最值、逆序等等,都要再寫一遍一樣的程式碼,特別麻煩;
那麼我們將每一個功能封裝成一個方法,將這些對陣列操作的方法全部儲存在一個ArrayTool類(工具類)中,以後需要運算元組的時候,直接調用出來。

自定義一個類,命名為ArrayTool,在裡面將需要的方法編寫進去

2、例:遍歷陣列、輸出陣列元素中的最大值

建立工具類物件,然後通過物件呼叫方法

public class ArrayDemo {
    public static void main(String[] args) {
        //定義一個數組
        int[] arr = {12, 27, 36, 68, 34, 72, 88};
        
        //遍歷陣列
        //第1步:建立工具類物件(快捷鍵:new ArrayTool.var回車)
        ArrayTool arrayTool = new ArrayTool();
        //第2步:呼叫工具類中遍歷方法
        arrayTool.printArray(arr);//物件名.方法名(陣列名)

        System.out.println();//表示換行

		//輸出陣列元素中的最大值
		//第1步:建立工具類物件(快捷鍵:new ArrayTool.var回車)
        ArrayTool arrayTool1 = new ArrayTool();
        //呼叫工具類中求最大值的方法
        //因為有返回值,所有呼叫方法後,需要接收一下
        int max = arrayTool1.getMaxNum(arr);//物件名.方法名(陣列名)
        System.out.println("陣列中元素的最大值為:"+max);
    }
}
			執行結果為:
                    [12,27,36,68,34,72,88]
                    陣列中的最大值為:88

                    Process finished with exit code 0

也可以通過工具類名直接呼叫方法,更為簡潔

public class ArrayDemo {
    public static void main(String[] args) {
        //定義一個數組
        int[] arr = {12, 27, 36, 68, 34, 72, 88};
        
        	//遍歷陣列
        	//通過工具類名直接呼叫方法
      	 ArrayTool.printArray(arr);

        System.out.println();//表示換行
			//輸出陣列元素中的最大值
		int max = ArrayTool.getMaxNum(arr);
        System.out.println("陣列中元素的最大值為:"+max);
    }
}
			執行結果為:
                    [12,27,36,68,34,72,88]
                    陣列中的最大值為:88

                    Process finished with exit code 0 a

3、當我們建立的工具類中的方法,不想讓別的程式隨意建立工具物件來調取,

我們可以將工具類中的構造方法私有化,私有化後的工具類中的方法,

只能通過工具類名來調換,不能建立物件來調取方法。

私有化如下:
public class ArrayTool {
    private ArrayTool(){	//將構造方法私有化(加private)
    }

                //遍歷陣列的方法
    public static void printArray(int[] array){
        for(int i =0;i<array.length;i++){
            if(i==array.length-1){
                System.out.print(array[i]+"]");
            } else if(i==0){
                System.out.print("["+array[i]+",");
            }else{
                System.out.print(array[i]+",");
            }
        }
    }
    .......
    .......

私有化後,只能通過工具類類名來調取內部的方法

格式 工具類名.方法名(陣列名);

調取方法如下:
		........
        ArrayTool.printArray(arr);//無返回值調取 

        int max = ArrayTool.getMaxNum(arr);//因為有返回值,所有呼叫方法後,需要接收一下
        System.out.println("陣列中元素的最大值為:"+max);
        .........
        .........