java中的程式碼塊(初始化塊)

程式猿一招解發表於2022-02-19
  • 介紹
    • 程式碼塊又叫初始化塊,屬於類中的成員,類似於方法,將邏輯語句封裝在方法體中,通過{ } 包圍起來,但和方法不同,沒有方法名,沒有返回值,沒有引數,只有方法體,而且不通過物件或類顯示呼叫,而是載入類時或建立物件時隱時呼叫
  • 程式碼塊分為兩類:
    • 使用static修飾的叫靜態程式碼塊
    • 沒有static修飾的叫普通程式碼塊
  • 語法:
    • static { 程式碼..... } 
    • { 程式碼.... }
  • 好處
    • 相當於另一種形式的構造器
    • 如果構造器中都有重複的語句,可以抽到初始化塊中
  • 細節
    • static初始化塊,作用就是對類進行初始化,而且它隨著類的載入而執行,並且只會執行一次
    • 類什麼時候載入(背背背!!重要重要重要!!!)
      • 建立物件例項時會載入
      • 建立子類物件例項,父類也會被載入(父先子後)例如 :如果A和B都有靜態初始化塊,並且A繼承B,則先輸出B的初始化塊
      • 使用類的靜態成員時(靜態屬性,靜態方法)
  • 建立一個物件時,呼叫順序優先順序:靜態 ➡️ 普通 ➡️ 構造器(重點!!!!!)
    • 優先順序高:靜態屬性初始話和靜態初始化塊的呼叫優先順序一樣,如果有多個,按他們定義的順序呼叫
    • 優先順序中:呼叫普通程式碼塊和普通屬性初始話優先順序一樣,多個按順序
    • 優先順序低:構造器

相關文章