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

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

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

瀏覽:49日期: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
相關文章:
主站蜘蛛池模板: 国产高清毛片 | 亚洲视频在线一区 | 欧美日韩国产高清 | 久久精品国产久精国产 | 国产精品一区二区不卡 | 欧美日韩精品一区二区三区视频 | 国产综合av | 欧美一区二区视频 | 国产三级 | 亚洲在线一区二区 | 日韩不卡一区二区 | 欧美伊人久久久久久久久影院 | 精品九九九| 国产高清免费视频 | 欧美成人精品 | 亚洲综合视频一区 | 日韩免费高清视频 | 日韩一区精品 | 99久久精品国产一区二区三区 | 中文字幕亚洲一区二区va在线 | 国产精品精品视频一区二区三区 | 国产日韩精品久久 | 亚洲一级二级三级 | 国产久 | 成人精品毛片国产亚洲av十九禁 | 女同久久| 欧美日韩精品一区二区三区蜜桃 | 免费看一级毛片 | 精品欧美色视频网站在线观看 | 日韩视频 中文字幕 | 亚洲欧美一区二区三区在线 | 黄色毛片视频 | 在线观看成年人视频 | 欧美日韩福利 | 久久久天天 | 欧美激情一区 | 国产精品久久久久久 | 欧美日韩视频在线播放 | 美女在线观看av | 国产精品成人一区二区三区夜夜夜 | 成人免费观看男女羞羞视频 |