Java學習 static關鍵字

2021-08-29 09:50:47 字數 1334 閱讀 2703

1.static屬性:用static修飾的屬性,也叫類屬性,通過類名呼叫(區別於通過物件呼叫)

類屬性強調的是一種共享屬性,比如有乙個chinaperson的類,其中每個人都是乙個物件,有不同的名字、年齡等,但是他們屬於的國家都是中國,這裡這個中國就是乙個共享屬性。我們可以將國家這個屬性設定為static屬性,值為「中國」,這樣我們建立物件時就不用給每個物件設定國家這個屬性的值了。

這裡還有乙個問題,當我們在chinaperson類中直接將country屬性設定為「中國」不就行了嗎?

對於這個問題,假設我們有一天在chinaperson類不能改動的情況下,想把「中國」改為「中華人民共和國」怎麼辦呢?

我們需要給每乙個物件的country重新賦值,當物件很多的情況時,實現起來非常麻煩。

怎麼樣才能把這個共享屬性更只改一次就可以了呢?那就是加上static關鍵字。

class chinaperson

public void info()

}public class test

}

當我們把乙個屬性用static關鍵字修飾,系統把這個屬性放在了全域性資料區,每個物件的country都指向這個區域,通過乙個物件上修改這個值,對其他物件都有影響。

static關鍵字特點:

訪問static屬性應該用類名稱. 屬性名

所有的非static屬性(例項屬性--與物件強相關)必須在類例項化後使用,而static屬性(類屬性)不受物件例項化控制,即沒有物件也可以用。

2.static方法(類方法、靜態方法)

既然有static屬性,也有static方法。

static方法與物件例項化無關,通過類名直接呼叫,常見於工具類方法。我們常見的有:

arrays.sort();

system.arraycopy();

...

class chinaperson

public static void setcountyt(string c)

}public class test

}

注意:

static方法不能訪問類中的普通屬性 (  普通屬性和物件強相關而static方法和物件無關);

static方法可以訪問類中的static屬性;

普通方法可以訪問類中static屬性和普通屬性;

外部類不能用static修飾;

內部類可以用static修飾;

使用static定義方法只有乙個目的:某些方法不希望受到類的控制,即可以在沒有例項化物件的時候執行(廣泛存在

於工具類中)

static關鍵字 java關鍵字

先按照宣告順序初始化基類靜態變數和靜態 塊,接著按照宣告順序初始化子類靜態變數和靜態 塊,而後按照宣告順序初始化基類普通變數和普通 塊,然後執行基類建構函式,接著按照宣告順序初始化子類普通變數和普通 塊,最後執行子類建構函式。import static com.test.test1.fu.say i...

Java學習筆記 static關鍵字

1 可以修飾成員變數和成員方法 2 隨著類的載入而載入 3 優先於物件存在 4 被類的所有物件共享 這是我們判斷該不該使用靜態的依據 5 通過類名呼叫 既可以通過物件名呼叫,也可以通過類名呼叫,建議通過類名呼叫 靜態的內容在方法區的靜態區 1 在靜態中沒有this物件 2 靜態只能訪問靜態 1 所屬...

關鍵字static學習

關於static關鍵字的使用,它可以用來修飾的成員變數和成員方法,被修飾的成員是屬於類的,而不是單單是屬 於某個物件的。也就是說,既然屬於類,就可以不靠建立物件來呼叫了。當 static 修飾成員變數時,該變數稱為類變數。該類的每個物件都共享同乙個類變數的值。任何物件都可以更改 該類變數的值,但也可...