gogo专业大尺度亚洲高清人体,美女张开双腿让男生桶,亚洲av无码一区二区三区鸳鸯影院,久久久久国产精品人妻

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

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

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

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

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

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

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

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

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

初始化塊,每創(chuàng)建一個(gè)對(duì)象調(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號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部