av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

聊聊Java 成員變量賦值和構造方法誰先執行的問題

瀏覽:27日期:2022-08-23 13:10:49

對于這個問題應該用JVM的工作步驟來解釋,首先看如下代碼

class X { Y b = new Y(); X() { System.out.print('X'); } } class Y { Y() { System.out.print('Y'); } } public class Z extends X { Y y = new Y(); Z() { System.out.print('Z'); } public static void main(String[] args) { new Z(); //結果是 YXYZ } }

這段代碼的執行過程如下:

1.在棧內存定義變量此時為初始值,定義方法。基本數據類型為0 ,引用數據類型為null

2. 調用父類構造方法,定義父類的屬性和方法(如果子類已經重寫父類的方法 這時不會被覆蓋,整個過程不會發生任何覆蓋的情 況)

3. 給父類的變量賦值。(此處即new了一個Y對象)

4. 執行父類構造方法中其他語句(此時它自己變量已經初始化和賦值完成,貌似很合理)

5. 給自己變量賦值(在堆內存創建對象或常量)(此處也是new了一個Y對象)

6. 執行構造方法中其他語句

鋪墊的小知識:

第一個:成員變量有基本類型和引用類型的。

class Demo { //基本類型 int x = 10; //引用類型 Student s = new Student(); }

第二個:類的初始化過程

加載class文件

堆中開辟空間

變量的默認初始化

變量的顯示初始化

構造代碼塊初始化

構造方法初始化

第三個:遇到extends,就要知道,先初始化父類數據,然后初始化子類數據。

分層初始化。

super在這里僅僅表示要先初始化父類數據。

補充知識:Java 設計一個Dog類,有名字、顏色、年齡等屬性,定義構造方法來初始化類的這些屬性,定義方法輸出Dog信息。編寫應用程序使用Dog類。

我就廢話不多說了,大家還是直接看代碼吧~

class Dog{ private String name,color; private int age; public Dog(String name,String color,int age){ this.name=name; this.color=color; this.age=age; } public void print(){ System.out.println('名字:'+name+' 顏色:'+color+' 年齡:'+age+'歲'); }}public class DogTest{ public static void main(String args[]){ Dog d=new Dog('哈士奇','白色',5); d.print(); }}

聊聊Java 成員變量賦值和構造方法誰先執行的問題

以上這篇聊聊Java 成員變量賦值和構造方法誰先執行的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 亚洲午夜精品久久久久久app | 免费v片 | 国产精品一区二区三区四区五区 | 影音先锋男 | 一二区成人影院电影网 | 久久久久国产一区二区三区不卡 | 国产精品久久久久久久久久妇女 | 亚洲精品成人在线 | 精品视频一区二区三区四区 | 国产精品久久久久久久久大全 | 久久人人网 | 日韩欧美一级片 | 亚洲一区成人 | 亚洲成人高清 | 黄频免费| 精品亚洲一区二区三区 | 精品欧美一区二区在线观看视频 | 久久男人 | 99九九久久| 欧美xxxx在线 | 成人亚洲一区 | 国产精品伦理一区二区三区 | 羞羞视频网站免费观看 | 国精产品一区一区三区免费完 | 国产最新精品视频 | 麻豆91精品91久久久 | 亚洲视频手机在线 | 91在线一区二区三区 | 精品在线观看一区 | 日本又色又爽又黄又高潮 | 中文字幕韩在线第一页 | 亚洲福利| 夜夜久久 | 在线观看的av | 久久久久久久97 | 视频一区二区国产 | 日韩精品一区二区三区在线播放 | 波多野结衣一区二区三区 | 国产精品一区二区三区在线 | 伊人天堂网 | 天天操 天天操 |