一 static

執行new來建立物件時,資料儲存空間才被分配,其方法才會被外界呼叫。有兩種情形是上述方法無法解決的,一是,只想為某特定域分配單一儲存空間,而不用考慮究竟建立多少個物件,甚至根本不用建立物件。二是沒有建立物件,也能呼叫類中的方法

舉例

class test {
    static int i = 1
}

test t1 = new test()
test t2 = new test()

// t1.i 與t2.i指向同一個儲存空間

class test {
    static void test(){}
}

// 可以直接使用test.test()呼叫這個方法

二 final

final 資料 :

某種方法告訴編譯器某一塊資料是恆定不變的

final 方法:

使用final 方法的原因有兩個,第一個原因是把方法鎖定,以防止任何繼承類修改它的含義。第二個原因是效率。在Java的早期實現中,如果將一個方法指明為final,就是同意編譯器將針對該方法的所有呼叫都轉為內嵌呼叫

final 類:

表明不允許繼承該類

三 Java訪問許可權修飾詞

預設訪問許可權沒有任何關鍵字,通常是指包訪問許可權,意味著當前包中的所有其他類對那個成員都有訪問許可權。

public :無論是誰,無論在哪都可以訪問該成員

private:除了包含該成員的類之外,其他任何類都無法訪問這個成員

protected :打破包訪問許可權,另一個包中的繼承類也可以訪問這個成員