亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Java對象構造和初始化過程

Java對象構造和初始化過程 時間:2018-09-27      來源:未知

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

1)在進入main方法之前類加載時,執行static修飾的靜態代碼塊,并且只執行一次。先執行父類靜態代碼塊再執行子類靜態代碼塊。

2)執行父類初始化塊(游離塊),構造方法。

本文引用地址://m.gxqdgs.com/emb/Column/7449.html

初始化塊,每創建一個對象調用一次。

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

3)執行子類初始化塊(游離塊),構造方法。

初始化塊,每創建一個對象調用一次。

在子類構造方法中,如果沒有通過super顯式調用父類構造方法,則默認調用父類無參構造方法;如果通過super顯示調用父類構造方法,該代碼必須放在第一行。

舉例說明如下:

創建父類Person.java

public class Person {

private String name;

private int age;

private String sex;

static{

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

}

{

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

}

//第一個構造方法

public Person(){

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

}

//第二個構造方法

public Person(String name,int age){

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

this.age = age;

this.name = name;

}

//第三個構造方法

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

this(name,age);

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

this.sex = sex;

}

}

創建子類Student.java

public class Student extends Person {

static{

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

}

{

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

}

//第一個構造方法

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

super(name,age,sex);

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

}

//第二個構造方法

public Student(){

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

}

}

創建測試類Test.java

public class Test {

public static void main(String[] args) {

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

Student s1 = new Student();

}

}

運行輸出結果如下:

這是靜態代碼塊Person //第一行

這是靜態代碼塊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)在類加載時,也就是執行main方法之前執行靜態代碼塊,只執行一次,所以輸出//第一行、//第二行。

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

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

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

3)當我們執行main函數中Student s1 = new Student();語句時,先調用父類初始化塊,輸出//第八行。

再執行父類構造方法,在Student.java第二個構造方法里,沒有通過super()顯示調用父類某個構造方法,此時默認調用父類無參構造方法。所以輸出//第九行。

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

上一篇:Java中的Class類

下一篇:Linux下字符設備驅動

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 国产在线果冻传媒在线观看 | 免费日本黄色网址 | 国产一级一级一级成人毛片 | 韩日精品在线 | 免费特黄视频 | www.亚洲视频.com | 免费人成又黄又爽的视频网站 | 中文字幕一区二区三区免费视频 | 国产欧美亚洲精品a | xxx69精品视频在线观看 | 久久高清一区二区三区 | 日本最新在线 | 九九碰| 国产欧美一区二区精品仙草咪 | 久久久xxxx | 99热在线精品播放 | 免费一级成人免费观看 | 天天干视频网站 | 在线综合视频 | 国产精品自在线观看剧情 | 99久久中文字幕伊人 | 永久免费人成网ww555kkk手机 | 久在草视频 | 青青草伊人 | 国产大片91精品免费观看不卡 | 国产人人艹 | 免费的污网站 | 国产精品福利一区二区久久 | 欧美超高清在线观看 | 色播亚洲视频在线观看 | 日本叉叉叉 | 97久久人人 | 久久久久久久国产视频 | 国产孕妇交bbwxxxxx | 日本精品一区二区三区在线视频 | 国内精品小视频在线 | 亚洲国产精品久久婷婷 | 日韩亚洲人成网站在线播放 | 亚洲第一区二区快射影院 | 成人在线天堂 | 97人人超|