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

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

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

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

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

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

本文引用地址://m.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號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 一本色道久久综合狠狠躁篇的优点| 国产区亚洲区欧美区| 国产精品444| 日韩国产高清视频在线| 欧美精品免费在线| 国产精品久久久久久久午夜 | 日韩成人黄色av| 久久久国产一区二区| 国产精品mp4| 日韩中文在线中文网三级| 2019中文在线观看| 亚洲性视频网站| 68精品久久久久久欧美| 亚洲欧美一区二区三区在线| 欧美激情中文网| 亚洲美女久久久| 国内精品视频一区| 亚洲色图av在线| 51精品在线观看| 亚洲欧美精品suv| 欧美最顶级丰满的aⅴ艳星| 有码中文亚洲精品| 国产精品久久久久99| 久久精品国产一区| 成人情趣片在线观看免费| 欧美日韩久久久久| 亚洲国产日韩欧美综合久久| 欧美高清一级大片| 永久免费精品影视网站| 国产精品免费一区豆花| 欧美视频一二三| 精品亚洲一区二区三区| 国产999在线观看| 精品国产乱码久久久久久虫虫漫画| 91在线观看免费观看| 97热精品视频官网| 色偷偷888欧美精品久久久| 91免费欧美精品| 日本欧美国产在线| 欧美日韩美女在线| 中国china体内裑精亚洲片|