1. 程式人生 > >靜態程式碼塊、構造塊

靜態程式碼塊、構造塊

靜態程式碼塊:用static宣告,在虛擬機器載入類時執行,只執行一次
構造程式碼塊:使用{}包括,在建立物件時使用
優先順序順序:靜態程式碼塊>main()方法>構造程式碼塊>建構函式

關於構造程式碼塊,以下幾點要注意:

  • 構造程式碼塊的作用是給物件進行初始化
  • 物件一建立就執行構造程式碼塊了,而且優先於建構函式執行。這裡要強調一下,有物件建立,才會執行構造程式碼塊,類不能呼叫構造程式碼塊的,而且構造程式碼塊與建構函式的執行順序是前者先於後者執行。
  • 構造程式碼塊與建構函式的區別是:構造程式碼塊是給所有物件進行統一初始化,而建構函式是給對應的物件初始化,因為建構函式是可以多個的,執行哪個建構函式就會建立什麼樣的物件,但無論建立哪個物件,都會先執行相同的構造程式碼塊

    。也就是說,構造程式碼塊中定義的是不同物件共性的初始化內容

    關於靜態程式碼塊,要注意的是:

  • 它是隨著類的載入而執行只執行一次,並優先於主函式。具體說,靜態程式碼塊是由類呼叫的。類呼叫時,先執行靜態程式碼塊,然後才執行主函式的。

  • 靜態程式碼塊其實就是給類初始化的,而構造程式碼塊是給物件初始化的
  • 靜態程式碼塊中的變數是區域性變數,與普通函式中的區域性變數性質沒有區別。
  • 一個類中可以有多個靜態程式碼塊