靜態static最基礎的知識

2021-08-27 18:16:23 字數 874 閱讀 3484

static靜態:

常見修飾的內容:

1.變數:

修飾變數時,叫靜態變數或類變數。此變數為類所有隨著虛擬機器載入類是而加載入方法區,此靜態變數為該類所有物件共享,在記憶體中只有乙個副本,它 當且僅當 類的初次載入時會被初始化。非靜態的變數是物件「私有」的,在每次建立物件時被初始化,存在多個副本,各個副本互不影響。而靜態變數是物件共享的,若乙個物件改變了其值,其他物件也會受影響。呼叫:其它類呼叫它時可以用類名直接呼叫該屬性,也可以用該類物件呼叫。 靜態 不能修飾區域性變數!

2.方法:

修飾方法時,叫靜態方法或類方法。類方法如其名,也是通過類名直接呼叫或者物件呼叫,但由於它不依賴於物件就可以訪問,因此對於靜態方法來說就沒有this.的。由於這個特性,靜態方法中就不止直接訪問非靜態成員方法和非靜態成員變數,因為非靜態是屬於物件的,靜態屬於類的,可以這麼理解。

注意:非靜態的方法是可以訪問靜態方法和變數的。

3.類:

修飾類時,此類只能是內部類。靜態內部類不需要有指向外部類的引用而非靜態內部類需要持有對外部類的引用。非靜態內部類能夠訪問外部類的靜態和非靜態成員,靜態內部類不能訪問外部類的非靜態成員,它只能訪問外部類的靜態成員(類似於靜態方法)。非靜態內部類不能脫離外部類實體被建立,非靜態內部類可以訪問外部類的資料和方法,因為他就在外部類裡面。

4.物件:

修飾物件時:此物件在編譯前就存在於記憶體中,所以不用new去建立了,可以直接用類名去呼叫。

5.**塊:

修飾**時,此時該**塊和靜態變數屬於乙個載入的優先順序。靜態變數丶靜態**塊都是隨著類的載入而載入,優先於構造方法丶構造**塊。靜態變數丶靜態**塊同時存在時,誰編寫在上面誰先載入,遵循順序結構。靜態**塊中不能有任何方法體的存在,而且它不能直接訪問靜態例項和例項方法,需要通過類的例項物件進行訪問。

概念 靜態static相關知識

在物件導向中,有 靜態 概念,通過關鍵字static進行說明,例如 靜態屬性 public static name 小倉鼠 靜態方法 public static function name 1 怎麼呼叫靜態屬性?使用self 進行呼叫,上例子 1 使用普通方法呼叫靜態屬性 2 使用靜態方法呼叫靜態屬...

java基礎之static(靜態)

靜態的屬性 方法等屬於類而不是物件。靜態的方法可以由類直接呼叫,不需要將類例項化。本篇主要說明 1 態的 成員變數要比構造方法先執行。2 子類的構造方法會預設去呼叫父類的不帶引數的構造方法,如果父類不提供不帶引數的構造方法,則子類的構造方法要顯示使用 super param 去呼叫父類的帶引數的構造...

java基礎之static(靜態)

靜態的屬性 方法等屬於類而不是物件。靜態的方法能夠由類直接呼叫,不須要將類例項化。本篇主要說明 1 態的 成員變數要比構造方法先執行。2 子類的構造方法會預設去呼叫父類的不帶引數的構造方法,假設父類不提供不帶引數的構造方法,則子類的構造方法要顯示使用 super param 去呼叫父類的帶引數的構造...