久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

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

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

對(dui)于(yu)Java對(dui)象的(de)構造和初(chu)始(shi)化過程的(de)理(li)解,我們(men)可(ke)以先(xian)掌握如(ru)下規則(ze):

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

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

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

初始化塊(kuai),每創(chuang)建一(yi)個對象調用一(yi)次。

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

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

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

在子類(lei)構造(zao)方(fang)法中(zhong),如果沒有(you)通過(guo)super顯式調用父(fu)類(lei)構造(zao)方(fang)法,則默(mo)認(ren)調用父(fu)類(lei)無參構造(zao)方(fang)法;如果通過(guo)super顯示調用父(fu)類(lei)構造(zao)方(fang)法,該(gai)代(dai)碼必須(xu)放在第一行。

舉(ju)例說明如下:

創建父類Person.java

public class Person {

private String name;

private int age;

private String sex;

static{

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

}

{

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

}

//第一個構造方法

public Person(){

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

}

//第二(er)個構造方法

public Person(String name,int age){

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

this.age = age;

this.name = name;

}

//第三個構造(zao)方(fang)法(fa)

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("這是自(zi)由(you)代碼塊Student");

}

//第(di)一個構造方法

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

super(name,age,sex);

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

}

//第(di)二個(ge)構造方法

public Student(){

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

}

}

創(chuang)建測試(shi)類Test.java

public class Test {

public static void main(String[] args) {

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

Student s1 = new Student();

}

}

運行輸出結果如下:

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

這是靜(jing)態代碼塊(kuai)Student //第二行(xing)

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

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

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

這(zhe)是(shi)自由代碼塊Student //第六行

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

這是自(zi)由代碼塊Person //第(di)八行

Person() //第九(jiu)行

這(zhe)是(shi)自由代碼塊Student //第(di)十行

Student() //第十一行

解釋(shi)說明如下(xia):

1)在類加載時,也(ye)就是執(zhi)行(xing)(xing)main方法之前(qian)執(zhi)行(xing)(xing)靜態代碼塊(kuai),只執(zhi)行(xing)(xing)一次,所以(yi)輸(shu)出//第一行(xing)(xing)、//第二行(xing)(xing)。

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

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

父類構造方法執(zhi)(zhi)行(xing)完畢,返回(hui)到Student.java類。先執(zhi)(zhi)行(xing)初(chu)始化塊,輸(shu)出//第六(liu)行(xing)。再執(zhi)(zhi)行(xing)第一個構造方法里,輸(shu)出//第七(qi)行(xing)。

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

再執行父(fu)類(lei)構造方(fang)(fang)(fang)法(fa),在Student.java第二個構造方(fang)(fang)(fang)法(fa)里(li),沒(mei)有通(tong)過super()顯示調用父(fu)類(lei)某個構造方(fang)(fang)(fang)法(fa),此(ci)時默(mo)認調用父(fu)類(lei)無參(can)構造方(fang)(fang)(fang)法(fa)。所以輸出//第九(jiu)行。

父(fu)類(lei)構(gou)(gou)造方法(fa)執(zhi)(zhi)行(xing)(xing)(xing)完(wan)畢,返回到Student.java類(lei)。先執(zhi)(zhi)行(xing)(xing)(xing)初始化塊,輸出//第(di)十行(xing)(xing)(xing)。再執(zhi)(zhi)行(xing)(xing)(xing)第(di)二個構(gou)(gou)造方法(fa),輸出//第(di)十一行(xing)(xing)(xing)。

上一篇:Java中的Class類

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

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

回到頂部