static 使用之靜態初始化塊
求教:請問為什么這段程序里面從main函數開始只調用了一個show的方法 ?可是為什么輸出的結果卻是上面的形式 ? ?這是不是因為本來系統就定義了 ? ? 可又為什么輸出的順序是這樣子的呢? 不是應該先輸出“姓名” ? “性別” ? “年齡” ?這行代碼嗎?? ?求大神講解
求教:請問為什么這段程序里面從main函數開始只調用了一個show的方法 ?可是為什么輸出的結果卻是上面的形式 ? ?這是不是因為本來系統就定義了 ? ? 可又為什么輸出的順序是這樣子的呢? 不是應該先輸出“姓名” ? “性別” ? “年齡” ?這行代碼嗎?? ?求大神講解
2015-04-02
舉報
2015-04-02
這個是有執行順序的,當你HelloWorld hello = new HelloWorld();實例化這個對象的時候先執行靜態代碼塊,再執行非靜態代碼塊,最后執行構造器。調用方法就不用說了
2015-04-03
同時,靜態代碼塊只允許一次,也就是說如果此時你再new一個新的HelloWorld對象也不會再輸出第一行的靜態初始化age了
2015-04-02
靜態代碼塊在類加載的期間就執行了