標籤:wap 函數 ret min static turn print rgs 載入
有多個對象都要用到同一個功能或者多個功能,那就先定義一個工具類,之後調用
class ArrayTool{ public int getMax(int[] arr){ int max=0; for(int x=1;x<arr.length;x++) { if(arr[x]>arr[max]) max=x; } return arr[max]; } public int getMin(int[] arr){ int min=0; for(int x=1;x<arr.length;x++) { if(arr[x]<arr[min]) min=x; } return arr[min]; } public void selectSort(int [] arr) { for(int x=0;x<arr.length-1;x++) { for(int y=x+1;y<arr.length;y++) { if(arr[x]>arr[y]) swap(arr,x,y); } } } public void bubbleSort(int []arr) { for(int x=0;x<arr.length-1;x++) { for(int y=0;y<arr.length-x-1;y++) { if (arr[y] > arr[y+1]) swap(arr,y,y+1); } } } public void swap(int []arr,int a,int b) { int temp=arr[a]; arr[a]=arr[b]; arr[b]=temp; }}
public class hello { public static void main(String[] args) { int[] arr={3,4,1,8}; ArrayTool tool=new ArrayTool(); int max=tool.getMax(arr); System.out.println("max="+max); }}
雖然可以通過建立ArrayTool這個對象對數組調用批量工具對數組進行操作,但是發現了問題
1.對象是用於封裝資料的,可是ArrayTool對象並未封裝持有資料
2.操作詩句的每一個方法都沒有用到ArrayTool對象中的特有資料
這時就考慮,不需要對象
可以將ArrayTool 中的所有方法都定義為靜態,直接通過類名調用
但是還可以將其new對象,通過構造對象私人化,阻止建立對象,還有swap這樣的函數不需要暴露給外界
class ArrayTool{
private ArrayTool(){} public static int getMax(int[] arr){ int max=0; for(int x=1;x<arr.length;x++) { if(arr[x]>arr[max]) max=x; } return arr[max]; } public static int getMin(int[] arr){ int min=0; for(int x=1;x<arr.length;x++) { if(arr[x]<arr[min]) min=x; } return arr[min]; } public static void selectSort(int [] arr) { for(int x=0;x<arr.length-1;x++) { for(int y=x+1;y<arr.length;y++) { if(arr[x]>arr[y]) swap(arr,x,y); } } } public static void bubbleSort(int []arr) { for(int x=0;x<arr.length-1;x++) { for(int y=0;y<arr.length-x-1;y++) { if (arr[y] > arr[y+1]) swap(arr,y,y+1); } } } private static void swap(int []arr,int a,int b) { int temp=arr[a]; arr[a]=arr[b]; arr[b]=temp; }}
public class ArrayToolDemo { public static void main(String[] args) { int[] arr={3,4,1,8}; int max=ArrayTool.getMax(arr); System.out.println("max="+max); }}
一個類中預設會有一個空參數的建構函式;
這個預設的建構函式的許可權和所屬類一致(public or no);
如果類被public 修飾,那麼預設的建構函式也帶public修飾符;
如果類沒有被public修飾,那麼預設的建構函式也沒有public修飾。
執行順序
Person p=new Person(參數);
類載入,靜態代碼塊載入,屬性(非靜態)載入,預設初始化,顯示初始化(直接賦值),構造代碼塊載入,建構函式初始化
Java物件導向之封裝