Java基礎——代碼塊

代碼塊:在類或方法中直接使用 「{ }」括起來的一段代碼,表示一塊代碼區域。java

代碼塊裏變量屬於局部變量,只在本身所在區域{ }內有效。spa

代碼塊依據位置不一樣分爲三種形式:code

  • 局部代碼塊:直接定義在方法內部的代碼塊。通常不直接使用,常結合if /for語句中使用的局部代碼塊。

    局部代碼塊程序示例:對象

    public class CodeBlock {
    
    	public static void main(String[] args) {
    	
    		int a=1;
    		{
    			int b=2;
    			System.out.println(a);
    			System.out.println(b);
    		}
    		System.out.println(a);
    		
    		// System.out.println(b);  //此處b沒法輸出
    	}
    
    }

    局部代碼塊程序示例運行結果:編譯

    1
    2
    1
  • 初始化代碼塊(構造代碼塊):直接定義在類中。每次建立對象都會執行初始化代碼塊,每次建立對象都會調用構造器。在調用構造器以前,會先執行本類中的初始化代碼塊。(經過反編譯後,會發現初始化代碼塊也做爲構造器的最初語句。)

 

    

        

        初始化碼塊程序示例:class

  • public class CodeBlock {
    
    	{
    		System.out.println("初始化代碼塊##########");
    	}
    	
    	CodeBlock(){		//構造器
    		System.out.println("構造器!!!!!!!!!");
    	}
    	public static void main(String[] args) {
    	
    		new CodeBlock();
    		System.out.println("~~~~~~~~~~~");
    		new CodeBlock();
    		
    	}
    
    }

     初始化碼塊程序示例運行結果:變量

    初始化代碼塊##########
    構造器!!!!!!!!!
    ~~~~~~~~~~~
    初始化代碼塊##########
    構造器!!!!!!!!!

               

  • 靜態代碼塊(使用static修飾的代碼塊):在主方法執行以前執行靜態代碼塊,且執行一次。程序

  靜態代碼塊程序示例:方法

 

public class CodeBlock {

	{
		System.out.println("初始化代碼塊##########");
	}
	
	CodeBlock(){		//構造器
		System.out.println("構造器!!!!!!!!!");
	}
	
	static{		//靜態代碼塊A
		System.out.println("靜態代碼塊A:$$$$$$$$$$");
	}
	
	public static void main(String[] args) {
	
		new CodeBlock();
		System.out.println("~~~~~~~~~~~");
		new CodeBlock();
		
	}
	
	static{		//靜態代碼塊B
		System.out.println("靜態代碼塊B:$$$$$$$$$$");
	}

}

 

        靜態代碼塊程序示例運行結果:im

靜態代碼塊A:$$$$$$$$$$
靜態代碼塊B:$$$$$$$$$$
初始化代碼塊##########
構造器!!!!!!!!!
~~~~~~~~~~~
初始化代碼塊##########
構造器!!!!!!!!!
相關文章
相關標籤/搜索