Java中初始化塊詳解
在Java中,有兩種初始化塊:靜態初始化塊和非靜態初始化塊.
靜態初始化塊:使用static定義,當類裝載到系統時執行一次.若在靜態初始化塊中想初始化變量,那僅能初始化類變量,即static修飾的數據成員.
非靜態初始化塊:在每個對象生成時都會被執行一次,可以初始化類的實例變量.
非靜態初始化塊會在構造函數執行時,且在構造函數主體代碼執行之前被運行.
括號里的是初始化塊,這里面的代碼在創建Java對象時執行,而且在構造器之前執行!
其實初始化塊就是構造器的補充,初始化塊是不能接收任何參數的,定義的一些所有對象共有的屬性、方法等內容時就可以用初始化塊了初始化!!
好處是可以提高初始化塊的復用,提高整個應用的可維護性。--《瘋狂java講義》
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
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(); } } |
運行結果:
1
2
3
4
|
In static initialization block! In non- static initialization block! In Constructor1! In show()! |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/qq_35101189/article/details/63680511