java中的程式碼塊理解
阿新 • • 發佈:2019-02-12
程式碼塊:就是用{}括起來到部分。根據應用的不同分為4類:普通程式碼塊、構造塊、靜態程式碼塊、同步程式碼塊。
1.普通程式碼塊:定義在方法中的程式碼塊。
如:
[java] view plaincopy- publicclass Ex22 {
- publicstaticvoid main(String[] args){
- // 普通程式碼塊
- {
- int i = 3;
- System.out.println("區域性變數為 " + i);
-
}
- int i = 5;
- System.out.println("相對上面的 i 來說是全域性的變數 " + i);
- }
- }
- //區域性變數為 3
- //相對上面的 i 來說是全域性的變數 5
2.構造塊:直接在類中編寫的程式碼塊。
[java] view plaincopy- class Demo5{
- {
- System.out.println("構造塊");
- }
- public Demo5(){
-
System.out.println("構造方法"
- }
- {
- System.out.println("構造方法後的構造塊");
- }
- }
- publicclass Ex22 {
- publicstaticvoid main(String[] args){
- new Demo5();
- new Demo5();
- }
- }
- //構造塊
- //構造方法後的構造塊
- //構造方法
- //構造塊
- //構造方法後的構造塊
- //構造方法
物件被例項化一次構造塊就執行一次;
構造塊優先執行比構造方法.
3.靜態程式碼塊:static 關鍵字宣告的程式碼塊.
[java] view plaincopy- class Demo5{
- {
- System.out.println("1構造塊");
- }
- public Demo5(){
- System.out.println("2構造方法");
- }
- {
- System.out.println("3構造方法後的構造塊");
- }
- static {
- System.out.println("4靜態程式碼塊");
- }
- }
- publicclass Ex22 {
- static {
- System.out.println("在主方法類中定義的程式碼塊");
- }
- publicstaticvoid main(String[] args){
- new Demo5();
- new Demo5();
- }
- }
- //在主方法類中定義的程式碼塊
- //4靜態程式碼塊
- //1構造塊
- //3構造方法後的構造塊
- //2構造方法
- //1構造塊
- //3構造方法後的構造塊
- //2構造方法
主方法靜態程式碼塊優先於主方法,
在普通類中靜態塊優先於構造塊,
在普通類中構造塊優先於構造方法,
靜態塊只例項化一次。