掌握java中的三種代碼塊的定義及使用
代碼塊概念
代碼塊本身並不是一個很難理解的概念,實際上之前也一直在使用。所謂代碼塊是指使用“{}”括起來的一段代碼,根據位置不同,代碼塊可以分為四種:普通代碼塊、構造塊、靜態代碼塊、同步代碼塊,其中同步代碼塊本書將在多線程部分進行講解,本章先來觀察其他三種代碼塊。
普通代碼塊
直接定義在方法中的代碼塊稱為普通代碼塊。
public class CodeDemo01{
public static void main(String args[]){
{ // 普通代碼塊
int x = 30 ; // 就屬於一個局部變數
System.out.println("普通代碼塊 --> x = " + x) ;
}
int x = 100 ; // 與局部變數名稱相同
System.out.println("代碼塊之外 --> x = " + x) ;
}
};
運行結果:
C:\Documents and Settings\Administrator\案頭\java>java CodeDemo01
普通代碼塊 --> x = 30
代碼塊之外 --> x = 100
構造塊:
將代碼塊直接定義在類中,則稱為構造代碼塊。
class Demo{
{ // 直接在類中編寫代碼塊,稱為構造塊
System.out.println("1、構造塊。") ;
}
public Demo(){ // 定義構造方法
System.out.println("2、構造方法。") ;
}
};
public class CodeDemo02{
public static void main(String args[]){
new Demo() ; // 執行個體化對象
new Demo() ; // 執行個體化對象
new Demo() ; // 執行個體化對象
}
};
運行結果:
C:\Documents and Settings\Administrator\案頭\java>java CodeDemo02
1、構造塊。
2、構造方法。
1、構造塊。
2、構造方法。
1、構造塊。
2、構造方法。
構造塊優先於構造方法執行,且執行多次,只要一有執行個體化對象產生,就執行構造塊中的內容。
靜態代碼塊:
直接使用static關鍵字聲明就稱為靜態代碼塊.
class Demo{
{ // 直接在類中編寫代碼塊,稱為構造塊
System.out.println("1、構造塊。") ;
}
static{ // 使用static,稱為靜態代碼塊
System.out.println("0、靜態代碼塊") ;
}
public Demo(){ // 定義構造方法
System.out.println("2、構造方法。") ;
}
};
public class CodeDemo03{
static{ // 在主方法所在的類中定義靜態塊
System.out.println("在主方法所在類中定義的代碼塊") ;
}
public static void main(String args[]){
new Demo() ; // 執行個體化對象
new Demo() ; // 執行個體化對象
new Demo() ; // 執行個體化對象
}
};
運行結果:
C:\Documents and Settings\Administrator\案頭\java>java CodeDemo03
在主方法所在類中定義的代碼塊
0、靜態代碼塊
1、構造塊。
2、構造方法。
1、構造塊。
2、構造方法。
1、構造塊。
2、構造方法。
靜態塊優先於主方法執行,如果在普通類中定義的靜態塊,優先於構造塊執行,不管不多少個執行個體化對象產生,靜態代碼塊只執行一次,靜態代碼塊的主要功能就是為靜態發生初始化。