/*
代碼塊:在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("code");
}
//構造代碼塊
{
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);
}
//找不到符號
//System.out.println(x);
{
int y = 20;
System.out.println(y);
}
System.out.println("---------------");
Code c = new Code();
System.out.println("---------------");
Code c2 = new Code();
System.out.println("---------------");
Code c3 = new Code(1);
}
}
執行結果
---------- 運行java ----------
10
20
---------------
1000
2000
100
200
code
---------------
100
200
code
---------------
100
200
code
輸出完成 (耗時 0 秒) - 正常終止
