Posted on 2009-06-29 18:19
WANGPENG 閱讀(403)
評(píng)論(0) 編輯 收藏 所屬分類:
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)行.
1 package com.tiandinet.studyjava;
2
3 public class TestInitiateBlock {
4
5 {
6 System.out.println("In non-static initialization block!");
7 };
8
9 static {
10 System.out.println("In static initialization block!");
11 };
12
13 public TestInitiateBlock() {
14 System.out.println("In Constructor1!");
15 }
16
17 public void show() {
18 System.out.println("In show()!");
19 }
20
21 /**
22 * @param args
23 */
24 public static void main(String[] args) {
25 TestInitiateBlock ti = new TestInitiateBlock();
26 ti.show();
27 }
28
29 }
運(yùn)行結(jié)果:
In static initialization block!
In non-static initialization block!
In Constructor1!
In show()!