物件導向-程式碼塊的概述和分類

ZHOU_VIP發表於2017-06-01

/*
	程式碼塊:在Java中,使用{}括起來的程式碼被稱為程式碼塊。
	根據其位置和宣告的不同,可以分為
		區域性程式碼塊:區域性位置,用於限定變數的生命週期。
		構造程式碼塊:在類中的成員位置,用{}括起來的程式碼。每次呼叫構造方法執行前,都會先執行構造程式碼塊。
			作用:可以把多個構造方法中的共同程式碼放到一起,對物件進行初始化。
		靜態程式碼塊:在類中的成員位置,用{}括起來的程式碼,只不過它用static修飾了。
			作用:一般是對類進行初始化。
			
	面試題:
		靜態程式碼塊、構造程式碼塊、構造方法的執行順序?
		靜態程式碼塊 --> 構造程式碼塊 --> 構造方法
		靜態程式碼塊:只執行一次
		構造程式碼塊:每次呼叫構造方法都執行
*/
class Code {
	static {
		int a = 1000;
		System.out.println(a);
	}

	//構造程式碼塊
	{
		int x = 100;
		System.out.println(x);
	}
	
	//構造方法
	public Code(){
		System.out.println("code");
	}
	
	//構造方法
	public Code(int a){
		System.out.println("code2");
	}
	
	//構造程式碼塊
	{
		int y = 200;
		System.out.println(y);
	}
	
	//靜態程式碼塊
	static {
		int b = 2000;
		System.out.println(b);
	}
}

class CodeDemo {
	public static void main(String[] args) {
		//區域性程式碼塊
		{
			int x = 10;
			System.out.println(x);//10
		}
		//找不到符號
		//System.out.println(x);
		
		{
			int y = 20;
			System.out.println(y);//20
		}
		//---------------------------------------------------
		
		Code c = new Code();	
		System.out.println("---------------");
		Code c2 = new Code();
		System.out.println("---------------");
		Code c3 = new Code(1);
	}
}




相關文章