靜態(Static)

屬於類別的範圍,表示不會讓個別物件擁有,也可作為命名空間。

JVM 的 class loader機制 載入該類別時被執行,只會執行一次

ClassLoader 機制

宣告方式

  • 靜態類別 - 宣告在類別上

    • 只能作為內部類別,並且只能訪問外部類別的靜態成員。

  • 靜態方法 - 宣告在方法上

    • 靜態方法要使用全域變數,只能使用靜態參數。

    • 靜態方法可以通過類別參考並直接使用,如:TestClass.staticMethod()

    • 不能使用 this ,不可包含非靜態成員。

  • 靜態參數 - 宣告在參數上

    • 靜態參數可以通過類別直接使用,如:TestClass.staticParam

  • 靜態區塊 - 透過宣告 static 並用 { } 包覆範圍。

    • 一個類別可以擁有多個靜態區塊,並且加載時依照順序執行。

    • 僅能存取靜態參數或其他的靜態方法。

    • 通常作為預設值的使用

    • 不能使用 this ,不可包含非靜態成員。

  • 靜態導入 - 宣告在 import 時

    • 可以在不使用 package 的情況下使用

    • 一般不建議使用,細微錯誤難以調整。

    • 又分為 指定成員導入按需求靜態導入

//指定靜態成員導入;
import static <<package name>>.<<type name>>.<<static member name>>;

//需要的靜態類別導入:
import static <<package name>>.<<type name>>.*;

參數的儲存位置

記憶體模型結構

Last updated

Was this helpful?