更新時(shí)間:2022-11-29 11:03:24 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1652次
Java類(lèi)的初始化是什么?動(dòng)力節(jié)點(diǎn)小編來(lái)告訴大家。
順序依次是:
類(lèi)的靜態(tài)部分(靜態(tài)代碼塊 + 靜態(tài)域(類(lèi)的static變量))
非靜態(tài)部分(構(gòu)造代碼塊 + 非靜態(tài)域)
構(gòu)造器
class Demo{
Demo(int id){
System.out.println("DEMO "+ id);
}
}
public class InitTest {
Demo d = new Demo(0);
static Demo d1 = new Demo(1);
InitTest(){
System.out.println("InitTest");
}
{
System.out.println("構(gòu)造代碼塊");
}
static {
System.out.println("靜態(tài)代碼塊");
}
static Demo d2 = new Demo(2);
Demo d3 = new Demo(3);
public static void main(String[] args) {
new InitTest();
}
}
/*
DEMO 1
靜態(tài)代碼塊
DEMO 2
DEMO 0
構(gòu)造代碼塊
DEMO 3
InitTest
*/
2.繼承中的初始化順序
父類(lèi)的靜態(tài)部分(靜態(tài)代碼塊 + 靜態(tài)域(類(lèi)的static變量))
子類(lèi)的靜態(tài)部分(靜態(tài)代碼塊 + 靜態(tài)域(類(lèi)的static變量))
父類(lèi)的非靜態(tài)部分(構(gòu)造代碼塊 + 非靜態(tài)域)
父類(lèi)的構(gòu)造器
子類(lèi)的非靜態(tài)部分(構(gòu)造代碼塊 + 非靜態(tài)域)
子類(lèi)的構(gòu)造器
class Other{
Other(String str){
System.out.println(str + "調(diào)用");
}
}
class Sup{
Other s0 = new Other("父類(lèi)Others0");
Sup(){
System.out.println("父類(lèi)的默認(rèn)構(gòu)造");
}
Sup(int id){
System.out.println("Sup " + id);
}
static Other s1 = new Other("父類(lèi)static Others1");
static {
System.out.println("父類(lèi)的靜態(tài)代碼塊");
}
static Other s2 = new Other("父類(lèi)static Others2");
Other s3 = new Other("父類(lèi)Others3");
{
System.out.println("父類(lèi)的構(gòu)造代碼塊");
}
}
class Sub extends Sup{
Other s0 = new Other("子類(lèi)Others0");
Sub(){
System.out.println("子類(lèi)的默認(rèn)構(gòu)造");
}
Sub(int id){
System.out.println();
}
static Other s1 = new Other("子類(lèi)static Others1");
{
System.out.println("子類(lèi)的構(gòu)造代碼塊");
}
static {
System.out.println("子類(lèi)的靜態(tài)代碼塊");
}
Other s2 = new Other("子類(lèi)Others2");
static Other s3 = new Other("子類(lèi)static Others3");
}
public class InheritInit {
public static void main(String[] args) {
new Sub();
}
}
/*
父類(lèi)static Others1調(diào)用
父類(lèi)的靜態(tài)代碼塊
父類(lèi)static Others2調(diào)用
子類(lèi)static Others1調(diào)用
子類(lèi)的靜態(tài)代碼塊
子類(lèi)static Others3調(diào)用
父類(lèi)Others0調(diào)用
父類(lèi)Others3調(diào)用
父類(lèi)的構(gòu)造代碼塊
父類(lèi)的默認(rèn)構(gòu)造
子類(lèi)Others0調(diào)用
子類(lèi)的構(gòu)造代碼塊
子類(lèi)Others2調(diào)用
子類(lèi)的默認(rèn)構(gòu)造
*/
以上就是關(guān)于“一文了解Java類(lèi)的初始化”介紹,大家如果想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下本站的Java教程,里面還有更豐富的知識(shí)等著大家去學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)