Java中初始化塊詳解
為中江等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及中江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、中江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
在Java中,有兩種初始化塊:靜態(tài)初始化塊和非靜態(tài)初始化塊.
靜態(tài)初始化塊:使用static定義,當(dāng)類裝載到系統(tǒng)時(shí)執(zhí)行一次.若在靜態(tài)初始化塊中想初始化變量,那僅能初始化類變量,即static修飾的數(shù)據(jù)成員.
非靜態(tài)初始化塊:在每個(gè)對(duì)象生成時(shí)都會(huì)被執(zhí)行一次,可以初始化類的實(shí)例變量.
非靜態(tài)初始化塊會(huì)在構(gòu)造函數(shù)執(zhí)行時(shí),且在構(gòu)造函數(shù)主體代碼執(zhí)行之前被運(yùn)行.
括號(hào)里的是初始化塊,這里面的代碼在創(chuàng)建Java對(duì)象時(shí)執(zhí)行,而且在構(gòu)造器之前執(zhí)行!
其實(shí)初始化塊就是構(gòu)造器的補(bǔ)充,初始化塊是不能接收任何參數(shù)的,定義的一些所有對(duì)象共有的屬性、方法等內(nèi)容時(shí)就可以用初始化塊了初始化??!
好處是可以提高初始化塊的復(fù)用,提高整個(gè)應(yīng)用的可維護(hù)性。--《瘋狂java講義》
package com.tiandinet.studyjava; public class TestInitiateBlock { { System.out.println("In non-static initialization block!"); }; static { System.out.println("In static initialization block!"); }; public TestInitiateBlock() { System.out.println("In Constructor1!"); } public void show() { System.out.println("In show()!"); } /** * @param args */ public static void main(String[] args) { TestInitiateBlock ti = new TestInitiateBlock(); ti.show(); } }
運(yùn)行結(jié)果:
In static initialization block! In non-static initialization block! In Constructor1! In show()!
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!