初始化塊和構(gòu)造方法的區(qū)別
在示例中我看不出初始化塊和構(gòu)造方法的區(qū)別,兩對(duì)大括號(hào)中間的內(nèi)容基本是一樣的,怎樣確定哪個(gè)是構(gòu)造方法?是否是緊跟在后面的就是構(gòu)造的,其他的就不是了呢
在示例中我看不出初始化塊和構(gòu)造方法的區(qū)別,兩對(duì)大括號(hào)中間的內(nèi)容基本是一樣的,怎樣確定哪個(gè)是構(gòu)造方法?是否是緊跟在后面的就是構(gòu)造的,其他的就不是了呢
2016-03-08
舉報(bào)
2016-03-08
public class HelloWorld {
? ??
? ? String name; // 聲明變量name
String sex; // 聲明變量sex
static int age;// 聲明靜態(tài)變量age
? ??
? ? // 構(gòu)造方法, ? ? ? ? ? ? ? ? ? 構(gòu)造函數(shù)的方法名一般和類重名, ?HelloWorld()方法名
public ? HelloWorld ? ? () {?
System.out.println("通過構(gòu)造方法初始化name");
name = "tom";
}
? ??
? ? // 初始化塊 ? ? ? ? ? ? 初始化塊就是一對(duì)大括號(hào),沒有訪問修飾符和方法名阿
{?
System.out.println("通過初始化塊初始化sex");
sex = "男";
}
? ??
? ? // 靜態(tài)初始化塊 ? ? ? ? ? ? ? ? ? ?static是關(guān)鍵字, 靜態(tài)...也沒有訪問修飾符和方法名阿
? static ? ? {?
System.out.println("通過靜態(tài)初始化塊初始化age");
age = 20;
}
靜態(tài)初始化塊只在類加載時(shí)執(zhí)行,且只會(huì)執(zhí)行一次,同時(shí)靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能初始化普通的成員變量。