色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

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

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

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

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

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

本文引用地址://www.17old.cn/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號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 亚洲精品成人久久| 97视频在线观看成人| 久久久久久综合网天天| 国产精品久久久久高潮| 亚洲日本欧美日韩高观看| 欧美日韩中文在线观看| 国产精品久久久久久久久久免费 | 国产精品三级久久久久久电影| 亚洲成年网站在线观看| 久久精品中文字幕电影| 日本欧美中文字幕| 国产午夜精品免费一区二区三区| 欧美激情视频在线| 亚洲综合小说区| 欧美国产激情18| 日韩成人xxxx| 2019av中文字幕| 伊是香蕉大人久久| 国产精品吊钟奶在线| 日韩在线小视频| 国产欧美在线看| 欧美日韩国产123| 亚洲国产婷婷香蕉久久久久久| 懂色av影视一区二区三区| 亚洲高清不卡av| 97精品国产aⅴ7777| 国产亚洲精品综合一区91| 国产mv免费观看入口亚洲| 成人97在线观看视频| 亚洲在线免费视频| 91精品国产91久久久久久最新| 亚洲天堂视频在线观看| 国产精品电影观看| 久久国产视频网站| 日韩av中文字幕在线| 秋霞成人午夜鲁丝一区二区三区| 中文字幕日韩欧美在线| 亚洲自拍在线观看| 国产精品com| 黑丝美女久久久| 日韩经典中文字幕|