溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中初始化塊詳解及實(shí)例代碼

發(fā)布時(shí)間:2020-10-02 05:30:55 來源:腳本之家 閱讀:144 作者:lqh 欄目:編程語言

Java中初始化塊詳解

在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í)就可以用初始化塊了初始化?。?br />

好處是可以提高初始化塊的復(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ì)本站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI