色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號

回到頂部

主站蜘蛛池模板: 爱情岛永久地址WWW成人 | 久久亚洲AV成人无码软件 | 色妺妺免费影院 | 亚洲日韩欧洲无码a∨夜夜 午夜福利麻豆国产精品 | 97在线视频免费人妻 | 凸凹人妻人人澡人人添 | 四虎2022永久免费人口 | 大陆精大陆国产国语精品 | 国产成人愉拍免费视频 | 亚洲Aⅴ在线无码播放毛片一线天 | 一本一道波多野结衣AV中文 | 中国精品一区二区 | 亚洲最新版av无码中文字幕一区 | 艳妇荡女欲乱双飞两中年熟妇 | 久久久视频在线观看 | 水蜜桃视频在线观看 | 久久66热人妻偷产精品9 | 一区二区三区精密机械 | 亚洲国产综合精品中久 | 制服丝袜人妻有码无码中文字幕 | 亚洲成A人片在线观看国产 xxxxx古代性xxxx | 欧美性狂猛xxxxxbbbbb | 欧美一区二区精品夜夜嗨 | 香港经典A毛片免费观看特级 | 男人激烈吮乳吃奶动图 | 国产自产一二三区 | 日本网站免费在线观看 | 国产情侣疯狂作爱系列 | 一本大道精品视频在线 | 日本一区二区视频在线 | 中文字幕日韩精品一区二区三区 | 亚洲骚妇图片网 | chinese少妇偷 | 欧美性猛交XXXXX按摩欧美 | 四虎影院免费观看 | 国产偷窥真人视频在线观看 | 免费无遮挡又黄又爽网站 | 嫩草影院入口污在线 | 日本工口里番h彩色无遮挡全彩 | 亚洲制服丝袜无码AV在线 | 亚洲日韩欧美内射姐弟 |