W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
static
非靜態(tài)的可以訪問靜態(tài)的;
靜態(tài)的不能訪問非靜態(tài)的。
靜態(tài)的和類相關(guān);
非靜態(tài)和對象相關(guān)。
1.訪問靜態(tài)成員:
類名.靜態(tài)成員;
對象名.靜態(tài)成員;
2.關(guān)于帶static代碼執(zhí)行順序:
1 加載類:
1.1 先將所有的靜態(tài)屬性做默認(rèn)初始化。
1.2 根據(jù)設(shè)置的值做顯式的初始化。
1.3 調(diào)用靜態(tài)代碼塊。
注意:系統(tǒng)調(diào)用StaticTest的main方法時(shí)必須先加載StaticTest類,
而不是在main方法中StaticTest d才加載StaticTest類。
2 創(chuàng)建對象時(shí):
2.1 對所有的實(shí)例屬性做默認(rèn)的初始化。
2.2 根據(jù)設(shè)置的值做顯式的初始化。
2.3 調(diào)用構(gòu)造代碼塊。
2.4 調(diào)用構(gòu)造方法(如果有父類,先調(diào)用super())
3 系統(tǒng)在堆內(nèi)存中給對象分配空間,確定對象的首地址。
3.小練習(xí): 其中(1(1.1))代表第1次執(zhí)行了1.1步驟。
public class StaticTest {
public static int i = 0;//(1(1.1))、(5(1.2))
public static StaticTest s1 = new StaticTest("s1");//(2(1.1))、(6(1.2))
public static int j = StaticTest.print("i");//(3(1.1))、(12(1.2))
public static int k = 233;//(4(1.1))、(14(1.2))
public int x = 10;//(7(2.1))、(8(2.2))、(16(2.1))、(17(2.2))
// 靜態(tài)代碼塊:(15(1.3))
static {
// 會著類的加載而調(diào)用,只會調(diào)用一次,某些程序中初始化的工作
System.out.println("調(diào)用了靜態(tài)代碼塊。");
}
// 構(gòu)造代碼塊:(9(2.3))、(18(2.3))
{
// 當(dāng)創(chuàng)建對象的時(shí)候會被調(diào)用,而且會被調(diào)用很多次,取決于創(chuàng)建了幾個(gè)對象;
// 會在構(gòu)造器之前調(diào)用.
System.out.println("調(diào)用了構(gòu)造代碼塊。");
}
// 構(gòu)造方法:(10(2.4))、(19(2.4))
public StaticTest(String string) {
System.out.println("調(diào)用了構(gòu)造方法。");
StaticTest.print(string);
}
// 靜態(tài)方法(11)、(13)、(20)
public static int print(String s) {
System.out.println("---------------");
System.out.println("調(diào)用了靜態(tài)方法。");
// 局部代碼塊
{
// 會產(chǎn)生一個(gè)局部作用域
int i = 233;
System.out.println("調(diào)用了局部代碼塊。");
}
System.out.println(s);
System.out.println("***************");
return 666;
}
public static void main(String[] args) {
StaticTest d = new StaticTest("S");
}
}
4.輸出結(jié)果:
調(diào)用了構(gòu)造代碼塊。
調(diào)用了構(gòu)造方法。
---------------
調(diào)用了靜態(tài)方法。
調(diào)用了局部代碼塊。
s1
***************
---------------
調(diào)用了靜態(tài)方法。
調(diào)用了局部代碼塊。
i
***************
調(diào)用了靜態(tài)代碼塊。
調(diào)用了構(gòu)造代碼塊。
調(diào)用了構(gòu)造方法。
---------------
調(diào)用了靜態(tài)方法。
調(diào)用了局部代碼塊。
S
***************
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: