靜態(tài)初始化和直接賦值
public class HelloWorld {
? ? String name="sdd"; // 聲明變量name
String sex="男"; // 聲明變量sex
static int age=10;// 聲明靜態(tài)變量age
? ? //構(gòu)造方法
public? HelloWorld() {?
System.out.println("通過構(gòu)造方法初始化name");
name = "tom";
}
? ? // 初始化塊
{?
System.out.println("通過初始化塊初始化sex");
sex = "男";
}
? ? // 靜態(tài)初始化塊
static? ?{?
System.out.println("通過靜態(tài)初始化塊初始化age");
age = 20;
}
public void show() {
System.out.println("姓名:" + name + ",性別:" + sex + ",年齡:" + age);
}
public static void main(String[] args) {
? ? ? ? // 創(chuàng)建對象
HelloWorld hello = new HelloWorld();
// 調(diào)用對象的show方法
? ? ? ? hello.show();
}
}
這個輸出結(jié)果和題目給的一樣,但是我直接給全局變量賦值在初始化就沒用了,是不是直接賦值級別比初始化低?那么直接給全局變量復(fù)制和初始化區(qū)別在哪?
2018-07-04
看了后面章節(jié)看懂了
2018-07-03
想通了,實(shí)驗(yàn)了下,大概是先給成員變量賦值,之后加載類,先靜態(tài)初始化-->普通初始化-->構(gòu)造方法,這三步把成員變量重新賦值了。