面向物件(9_1):製作工具類
阿新 • • 發佈:2021-12-08
面向物件(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);
.........
.........