Java中的靜態(tài)代碼塊和構造函數(shù)都是用來初始化類的,但它們有一些不同的地方。
靜態(tài)代碼塊是在類被加載時執(zhí)行的,它可以對靜態(tài)成員變量進行賦值或執(zhí)行某些操作。靜態(tài)代碼塊的語法如下:
static { // 靜態(tài)代碼塊的語句 }
例如,下面的代碼演示了如何使用靜態(tài)代碼塊對靜態(tài)成員變量進行初始化:
class MyClass { static int num; static { num = 100; } }
在上面的代碼中,靜態(tài)代碼塊初始化了靜態(tài)成員變量num為100。當類被加載時,靜態(tài)代碼塊將被執(zhí)行。
構造函數(shù)是在類實例化時執(zhí)行的,它可以對實例變量進行賦值或執(zhí)行某些操作。構造函數(shù)的語法如下:
public MyClass() { // 構造函數(shù)的語句 }
例如,下面的代碼演示了如何使用構造函數(shù)對實例變量進行初始化:
class MyClass { int num; public MyClass(int n) { num = n; } }
在上面的代碼中,構造函數(shù)初始化了實例變量num為傳遞給它的參數(shù)值。在創(chuàng)建類實例時,構造函數(shù)將被調用。
總的來說,靜態(tài)代碼塊和構造函數(shù)都是用來初始化類的,但靜態(tài)代碼塊適用于對靜態(tài)成員變量進行初始化,而構造函數(shù)適用于對實例變量進行初始化。