閱讀495 返回首頁    go 技術社區[雲棲]


Java 25天基礎-DAY 06-麵向對象-靜態應用---工具類

靜態應用---工具類
雖然可以同拖建立ArryTool的對象使用這些工具方法,對數組進行操作,發現了問題。
1;對象是用於封裝數據的,可是ArrayTool對象並未封裝特有數據。
2;操作數組的沒一個方法都沒有用到ArryTool對象的特有數據。

這是就考慮,讓程序更嚴謹,是不需要創建對象的。
可以將ArryTool中的方法都定義稱static的,直接通過類名調用即可。

例:
class demo
{
public static void main(String[] args)
{
int [] arr = {3,4,1,8};

    /*
    ArryTool tool = new ArryTool();
    int max = tool.getMax (arr);
    System.out.println(max);

    ArryTool tool1 = new ArryTool();
    int min = tool1.getMin (arr);
    System.out.println(min);


    tool.printArry(arr);

    tool.bubbleSort(arr);
    tool.printArry(arr);

    tool.selectsort(arr);
    tool.printArry(arr);
*/
    int max = ArryTool.getMax(arr);
    System.out.println(max);
}

}

/*
靜態的應用
每一個應用程序中都有共性的功能。
可以將這些功能進行抽取,獨立封裝。
以便複用

雖然可以同拖建立ArryTool的對象使用這些工具方法,對數組進行操作,發現了問題。
1;對象是用於封裝數據的,可是ArrayTool對象並未封裝特有數據。
2;操作數組的沒一個方法都沒有用到ArryTool對象的特有數據。

這是就考慮,讓程序更嚴謹,是不需要創建對象的。
可以將ArryTool中的方法都定義稱static的,直接通過類名調用即可。

將方法都靜態後,可以方便與使用,但是因為默認有一個構造函數,該類還是可以被其他程序
建立對象的。
可以將默認構造函數私有化,使別的程序無法創建對象。

如果類被public修飾,name默認的構造函數也帶有public修飾符。
如果類沒有被public修飾,那麼默認的構造函數也沒有public修飾。
默認構造函數的權限是隨著類的變化而變化的。
默認的構造函數時不顯示的,看不到的那個函數。如果寫了一個空參數的構造函數則這個空參數的構造函數是自定義構造函數
*/

/**
文檔說明書
這是一個對數組進行操作的工具類,該類中提供了,獲取最值,排序功能
@author 張三豐
@version v1.0

/
public class ArryTool
{
/
*
空參數構造函數
/
private ArryTool (){}
/
*
獲取一個整型數組中的最大值,
@param arr 接受一個int 類型的數組。
@return 返回一個該數組中最大值。
*/
public static int getMax(int [] arr)
{
int max =0;
for (int x=1;x {
if (arr[x]>arr[max])
max= x;

    }
    return arr[max];
}

/**
獲取一個整型數組中的最小值,
@param arr 接受一個int 類型的數組。
@return 返回一個該數組中最小值。
*/
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];
}

/**
給一個int類型數組排序
@param arr 接受一個int 類型的數組。

/
public static void selectsort (int [] arr)
{
for (int x=0;x {
for (int y=x+1;y {
if (arr[x]>arr[y])
{
swap (arr,x,y);
}
}
}
}
/
*
給一個int類型數組排序(冒泡排序)
@param arr 接受一個int 類型的數組。

/
public static void bubbleSort (int [] arr)
{
for (int x= 0;x {
for (int y=0;y {
if (arr[y]>arr[y+1])
{
swap (arr,y,y+1);
}
}
}
}
/
*
給一個int類型數組中的元素進行位置置換
@param arr 接受一個int 類型的數組。
@param a 要置換的位置
@param b 要置換的位置
*/
private static void swap (int [] arr,int a, int b)
{//私有化,因為該函數隻在該類內使用。不需要暴露在外麵。
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

/**
用於打印數組中的元素,打印形式是:[elemet1.elemet2,..........]
*/
public static void printArry (int [] arr)
{

    System.out.print ("[");
    for (int x=0;x<arr.length ;x++ )
    {
        if (x!=arr.length-1)
        {
            System.out.print(arr[x]+",");

        }
        else
            System.out.println(arr[x]+"]");
    }
}

}
clipboard

最後更新:2017-10-13 23:04:30

  上一篇:go  Java 25天基礎-DAY 06-麵向對象-靜態代碼塊
  下一篇:go  Java 25天基礎-DAY 06-麵向對象-ststic關鍵字