java 初始化塊筆記__初始化塊

來源:互聯網
上載者:User
初始化塊

初始化塊是java類裡可出現的地四種(屬性、方法、構造器)成員。一個類裡可以有多個初始化塊,多個初始化塊之間有順序:在前面的初始化塊先執行,後邊的初始化塊後執行。

如果初始化塊用static修飾,就是會成為靜態初始化塊。初始化塊中可以保護任何的執行性語句,包括定義變數,條件分支語句、迴圈語句等。

初始化塊沒有名字,不能被調用,它在對象建立時隱式執行。初始化快先於構造器先執行。初始化塊和類中的屬性聲明賦預設值都可以認為是初始化代碼,他們的執行順序與他們在程式中的排列屬性相同。例如:

public class initTest{    //先執行,因為在程式的排列屬性先於a = 9    {        a=6;    }    //在執行    int a = 9;    public initTest(){        int = 12; //其次執行    }}
初始化塊與構造器

從某種程度上來看,初始化塊是構造器的一種補充。與構造器不同的是,它是一段固定的代碼,不接受任何參數。如果類中的多個構造器中初始化代碼相同,而且不用接受參數,可以提取到初始化塊中,這樣代碼看起來更簡潔。

與構造器類似的是,在建立一個java對象時,會先執行父類的初始化塊,父類的構造器,然後是本類的初始化塊,本類的構造器。 靜態初始化塊

如果使用static修飾的初始化塊就是靜態初始化塊。它是在類載入時執行的,不是在對象建立時執行的。靜態初始化塊中不能訪問非靜態成員,這與靜態方法中不能調用非靜態方法和成員是一致的。
靜態初始化塊和靜態屬性的初始化都是初始化代碼,它們的初始化順序與他們在程式中排列的屬性相同。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.