天天看點

java--靜态的應用(工具類)

ArrayTool.java檔案

/**
靜态的應用。

每一個應用程式中都有公行動的功能,可以将這些功能進行抽取,獨立封裝以便複用

由于ArrayTool中并沒有封裝特有資料,而且數組的每一個方法也沒有用到ArrayTool中的特有資料,為讓程式更加嚴謹,
可以将ArrayToll中的方法都定義程static的,直接用類名調用即可
接下來就可以将ArrayTool發送給其他人,其他人隻要将該檔案設定到classpath的路徑下就可以使用該工具
為使對方清楚該類的功能,可以通過說明書(文檔注釋)來完成
*/

/**
這是一個可以對數組進行曹組的工具類,該類中提供了擷取最值(最大,最小)、排序的功能
@author 某某
@version V1.0
*/

class ArrayTool 
{
	/**
	空參數構造函數,由于前文中提到的原因,避免被建立對象而占用過多無用記憶體,聲明為private類型
	*/
	private ArrayTool(){}

	/**
	擷取意義整型數組的最大值
	@param arr 接受一個int型數組
	@return max 傳回一個該數組中的最大值
	*/
	public static int getMax(int[] arr)
	{
		int max=0;
		for (int i=0 ; i<arr.length ; i++ )
		{
			if(arr[i]>max)
				max=arr[i];
		}
		return max;
	}

	/**
	擷取意義整型數組的最小值
	@param arr 接受一個int型數組
	@return min 傳回一個該數組中的最小值
	*/
	public static int getMin(int[] arr)
	{
		int min=9999;
		for (int i=0 ; i<arr.length ; i++ )
		{
			if(arr[i]<min)
				min=arr[i];
		}
		return min;
	}

	/**
	給int型數組選擇排序(自小到大)
	@param arr 接受一個int型數組
	*/
	public static void selectSort(int[] arr)
	{
		for (int i=0 ; i<arr.length-1 ; i++)
		{
			for (int j=i+1 ; j<arr.length ; j++ )
			{
				if(arr[i]>arr[j])
				{
					swap(arr,i,j);
				}
			}
		}
	}
	
	/**
	給int型數組冒泡排序(自小到大)
	@param arr 接受一個int型數組
	*/
	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);
				}
			}
		}
	}

	/**
	交換數組中元素的位置
	@param arr 數組
	@param i 要交換的位置坐标1
	@param i 要交換的位置坐标2
	*/
	private static void swap(int[] arr,int i,int j)
	{
		int temp=arr[i];
		arr[i]=arr[j];
		arr[j]=temp;
	}

	/**
	列印數組中的元素。
	*/
	public static void printArray(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]+"]");
		}
	}
}
      

ArrayToolDemo檔案

class  ArrayToolDemo     //測試主函數
{
	public static void main(String[] args) 
	{
		int[] arr = {32,1,45,6,89,33,99};            //聲明一個無需數組
 		
		ArrayTool.printArray(arr);                   //列印數組

		int max = ArrayTool.getMax(arr);             //測試最大值
		System.out.println("max = "+max);

		int min = ArrayTool.getMin(arr);             //測試最小值
		System.out.println("min = "+min);

		//ArrayTool.printArray(arr);                     //列印數組
		//ArrayTool.selectSort(arr);              //測試選擇排序
		//ArrayTool.printArray(arr);                       //列印出排序好的數組

		ArrayTool.printArray(arr);                      //列印數組
		ArrayTool.bubbleSort(arr);                //測試冒泡排序
	    ArrayTool.printArray(arr);                     //列印出排序好的數組


	}
}