亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

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

瀏覽:45日期: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.在棧內存定義變量此時為初始值,定義方法?;緮祿愋蜑? ,引用數據類型為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
相關文章:
主站蜘蛛池模板: 在线成人a毛片免费播放 | 久在线播放| 99视频在线免费 | 一级做α爱过程免费视频 | 欧美一级aa毛片禁片 | 男女性高爱潮免费网站 | 国产亚洲人成网站在线观看不卡 | 日韩一级片 韩国 | 91热久久免费频精品动漫99 | 国产精品久久久久久影院 | 国产精品黄 | 亚洲一区在线视频 | 色婷婷91 | 国产成人国产在线观看入口 | a级片观看| 欧美黑寡妇特a级做爰 | 欧美极品在线 | 在线一区二区观看 | 久久国内精品视频 | 成人免费视频69 | 夜夜躁狠狠躁日日躁2021 | 久久99久久99 | 国产精品欧美一区二区三区 | 欧美日本一区二区 | 黄在线看 | 久久夜色精品国产噜噜亚洲a | 综合精品 | 国产高清一区 | 女人张开双腿让男人 | 午夜香蕉成视频人网站高清版 | 国产一区二区三区免费在线视频 | 亚洲资源在线播放 | 中午字幕在线观看 | 欧美成人性色xxxxx视频大 | 黄网国产 | 日本精品视频在线播放 | 国产免费一级高清淫曰本片 | 毛片免费的 | 美国一级毛片在线 | 精品午夜国产在线观看不卡 | www国产视频 |