靜態代碼塊、構造塊

靜態代碼塊:用static聲明,在虛擬機加載類時執行,只執行一次
構造代碼塊:使用{}包括,在創建對象時使用
優先級順序:靜態代碼塊>main()方法>構造代碼塊>構造函數

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

  • 構造代碼塊的作用是給對象進行初始化
  • 對象一建立就運行構造代碼塊了,而且優先於構造函數執行。這裏要強調一下,有對象建立,纔會運行構造代碼塊,類不能調用構造代碼塊的,而且構造代碼塊與構造函數的執行順序是前者先於後者執行。
  • 構造代碼塊與構造函數的區別是:構造代碼塊是給所有對象進行統一初始化,而構造函數是給對應的對象初始化,因爲構造函數是可以多個的,運行哪個構造函數就會建立什麼樣的對象,但無論建立哪個對象,都會先執行相同的構造代碼塊。也就是說,構造代碼塊中定義的是不同對象共性的初始化內容

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

  • 它是隨着類的加載而執行只執行一次,並優先於主函數。具體說,靜態代碼塊是由類調用的。類調用時,先執行靜態代碼塊,然後才執行主函數的。

  • 靜態代碼塊其實就是給類初始化的,而構造代碼塊是給對象初始化的
  • 靜態代碼塊中的變量是局部變量,與普通函數中的局部變量性質沒有區別。
  • 一個類中可以有多個靜態代碼塊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章