首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java static 關鍵字深度解析:靜態欄位、靜態方法、類級資料、單例模式先驅

     編輯:Java 相關知識

核心概念

static 表示屬於類而非實例:

  • 無需建立物件即可存取
  • 所有實例共享同一份靜態資料
  • 靜態方法不能直接存取非靜態成員(無 this 參考)

靜態欄位

class StaticTest {
    static int i = 47;  // 類級欄位
}

StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
st1.i == st2.i == 47;   // 共享同一記憶體
StaticTest.i++;         // 推薦:透過類名存取
st1.i == st2.i == 48;   // 兩者同步變化

靜態方法

class StaticFun {
    static void incr() { StaticTest.i++; }
}

// 兩種呼叫方式
StaticFun sf = new StaticFun();
sf.incr();              // 透過實例(不推薦)
StaticFun.incr();       // 透過類名(推薦,語義清晰)

關鍵限制

  • 靜態方法中不能使用 this、super
  • 靜態方法不能直接呼叫非靜態方法/存取非靜態欄位
  • 非靜態方法可自由存取靜態成員

main 方法必須是 static 的原因

JVM 啟動時尚未建立任何物件,需直接呼叫 main() 進入程式。這是 static 最關鍵的用途之一。

靜態工廠模式雛形

靜態方法常作為「領頭羊」建立實例:

class Singleton {
    private static Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) instance = new Singleton();
        return instance;
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved