靜態程式碼塊和構造程式碼塊
阿新 • • 發佈:2019-01-30
靜態程式碼塊
/*
靜態程式碼塊:隨著類的載入就執行,只執行一次,優先於main函式執行
*/
class Test
{
static{
System.out.println("C");
}
public static void show(){
System.out.println("show");
}
}
class Test4
{
static {
System.out.println("A");
}
public static void main(String[] args)
{
System.out .println("Hello World!");
Test test = null; //此處不執行Test的靜態程式碼塊,因為並沒有例項化物件,沒有進行類的載入
new Test();
Test t = new Test();
Test.show();
}
static{
System.out.println("B");
}
}
輸出結果:
構造程式碼塊
/*
構造程式碼塊:物件以建立就執行,且優先於建構函式執行
構造程式碼塊可以對所有物件進行初始化
建構函式只能針對特定的物件進行初始化
*/
class Person
{
String name;
int age;
//構造程式碼塊
{
System.out.println("構造程式碼塊");
}
Person(){
System.out.println("建構函式");}
}
class Test5
{
public static void main(String[] args)
{
Person ren1 = new Person();
Person ren2 = new Person();
//System.out.println("Hello World!");
}
}
輸出結果:構造程式碼塊
建構函式
構造程式碼塊
建構函式