色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Java對象構(gòu)造和初始化過程

Java對象構(gòu)造和初始化過程 時(shí)間:2018-09-27      來源:未知

對于Java對象的構(gòu)造和初始化過程的理解,我們可以先掌握如下規(guī)則:

1)在進(jìn)入main方法之前類加載時(shí),執(zhí)行static修飾的靜態(tài)代碼塊,并且只執(zhí)行一次。先執(zhí)行父類靜態(tài)代碼塊再執(zhí)行子類靜態(tài)代碼塊。

2)執(zhí)行父類初始化塊(游離塊),構(gòu)造方法。

本文引用地址://www.einuk.cn/emb/Column/7449.html

初始化塊,每創(chuàng)建一個(gè)對象調(diào)用一次。

如果構(gòu)造方法中使用this()調(diào)用其他構(gòu)造方法,該行代碼必須放在構(gòu)造方法中第一行。

3)執(zhí)行子類初始化塊(游離塊),構(gòu)造方法。

初始化塊,每創(chuàng)建一個(gè)對象調(diào)用一次。

在子類構(gòu)造方法中,如果沒有通過super顯式調(diào)用父類構(gòu)造方法,則默認(rèn)調(diào)用父類無參構(gòu)造方法;如果通過super顯示調(diào)用父類構(gòu)造方法,該代碼必須放在第一行。

舉例說明如下:

創(chuàng)建父類Person.java

public class Person {

private String name;

private int age;

private String sex;

static{

System.out.println("這是靜態(tài)代碼塊Person");

}

{

System.out.println("這是自由代碼塊Person");

}

//第一個(gè)構(gòu)造方法

public Person(){

System.out.println("Person()");

}

//第二個(gè)構(gòu)造方法

public Person(String name,int age){

System.out.println("Person(String name,int age)");

this.age = age;

this.name = name;

}

//第三個(gè)構(gòu)造方法

public Person(String name,int age,String sex){

this(name,age);

System.out.println("Person(String name,int age,String sex)");

this.sex = sex;

}

}

創(chuàng)建子類Student.java

public class Student extends Person {

static{

System.out.println("這是靜態(tài)代碼塊Student");

}

{

System.out.println("這是自由代碼塊Student");

}

//第一個(gè)構(gòu)造方法

public Student(String name,String sex,int age){

super(name,age,sex);

System.out.println("Student(String name,String sex,int age)");

}

//第二個(gè)構(gòu)造方法

public Student(){

System.out.println("Student()");

}

}

創(chuàng)建測試類Test.java

public class Test {

public static void main(String[] args) {

Student s = new Student("violet","female",33);

Student s1 = new Student();

}

}

運(yùn)行輸出結(jié)果如下:

這是靜態(tài)代碼塊Person //第一行

這是靜態(tài)代碼塊Student //第二行

這是自由代碼塊Person //第三行

Person(String name,int age) //第四行

Person(String name,int age,String sex) //第五行

這是自由代碼塊Student //第六行

Student(String name,String sex,int age) //第七行

這是自由代碼塊Person //第八行

Person() //第九行

這是自由代碼塊Student //第十行

Student() //第十一行

解釋說明如下:

1)在類加載時(shí),也就是執(zhí)行main方法之前執(zhí)行靜態(tài)代碼塊,只執(zhí)行一次,所以輸出//第一行、//第二行。

2)當(dāng)我們執(zhí)行main函數(shù)中Student s = new Student("violet","female",33);語句時(shí),先調(diào)用父類初始化塊,輸出//第三行。

再調(diào)用父類構(gòu)造方法,在Studet.java第一個(gè)構(gòu)造方法中通過super(name,sex,age)調(diào)用父類Person.java中第三個(gè)構(gòu)造方法,該構(gòu)造方法中第一行代碼this(name,age)指向第二個(gè)構(gòu)造方法,所以先執(zhí)行第二個(gè)構(gòu)造方法,輸出//第四行。第二個(gè)構(gòu)造方法執(zhí)行結(jié)束,返回到第三個(gè)構(gòu)造方法,輸出//第五行

父類構(gòu)造方法執(zhí)行完畢,返回到Student.java類。先執(zhí)行初始化塊,輸出//第六行。再執(zhí)行第一個(gè)構(gòu)造方法里,輸出//第七行。

3)當(dāng)我們執(zhí)行main函數(shù)中Student s1 = new Student();語句時(shí),先調(diào)用父類初始化塊,輸出//第八行。

再執(zhí)行父類構(gòu)造方法,在Student.java第二個(gè)構(gòu)造方法里,沒有通過super()顯示調(diào)用父類某個(gè)構(gòu)造方法,此時(shí)默認(rèn)調(diào)用父類無參構(gòu)造方法。所以輸出//第九行。

父類構(gòu)造方法執(zhí)行完畢,返回到Student.java類。先執(zhí)行初始化塊,輸出//第十行。再執(zhí)行第二個(gè)構(gòu)造方法,輸出//第十一行。

上一篇:Java中的Class類

下一篇:Linux下字符設(shè)備驅(qū)動(dòng)

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 免费的m3u8在线观看 | 日本xxxx色视频在线观看免费不卡 | 风韵丰满熟妇啪啪区老老熟妇 | 无码中文av有码中文av | 极品新婚夜少妇真紧 | 国产av无码专区亚洲版综合 | 无码亚洲成A∧人片在线播放 | 欧美人与禽交无码免费视频 | 欧美人妻精品一区二区三区 | 中国女人内谢25XXXXX | 亚洲综合人成网免费视频 | 在线免费不卡视频 | AV天堂亚洲狼人在线 | 人妻无码久久一区二区三区免费 | 欧美成人午夜免费全部完 | 国产精品刺激对白麻豆99 | 99色在线| 久久精品无码专区免费东京热 | 中文字幕一区在线 | 少妇高潮惨叫喷水在线观看 | 狠狠色丁香婷婷久久综合蜜芽 | 狠狠色丁香婷婷综合久久图片 | 野狼第一精品社区 | 别揉我奶头~嗯~啊~视频免费网站 | 乱色熟女综合一区二区三区 | 野花香在线视频免费观看大全 | 亚洲尺码欧洲尺码有哪些品牌好 | 性欧美大战久久久久久久黑人 | 亚洲一区二区三区小说 | 新91入口| 午夜香港三级A三级三点 | oldgraanny日本老熟妇 | 久99热 | 亚洲精品无码专区久久久 | 国产av午夜精品一区二区三 | 久久久中日AB精品综合 | 五月天国产成人av免费观看 | 香蕉久久人人爽人人爽人人片av | 亚洲一区无码精品色 | 日日躁夜夜躁狠狠躁夜夜躁 | 国产亚洲美女精品久久久久 |