色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:43日期: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
相關文章:
主站蜘蛛池模板: 成年人网站免费视频 | 国产网站91 | 神马午夜-午夜片 | 免费看真人a一级毛片 | 亚洲视频二 | 国产欧美久久久精品影院 | 欧美级| 日韩一区二区不卡 | 国产男女交性视频播放免费bd | 大看蕉a在线观看 | 国产一级一国产一级毛片 | 全部孕妇毛片丰满孕妇孕交 | 午夜看毛片 | 免费一级视频在线播放 | 91成年人免费视频 | 手机看片av| 一级性片 | 91精品欧美一区二区综合在线 | 国产精品久久精品视 | 91精品免费高清在线 | 国产精品久久久久久久久久98 | 精品成人在线观看 | 女人国产香蕉久久精品 | 亚洲国产精品自在现线让你爽 | 日本黄大片影院一区二区 | 青青自拍 | 欧美aaaaaaaa| 日本在线观看免费视频 | 最新国产精品视频免费看 | 99久久精品费精品国产一区二区 | 国产一区二区免费视频 | 真人一级一级特黄高清毛片 | 国亚洲欧美日韩精品 | 国产v欧美v日韩在线观看 | 欧美视频xxxxx | 521a久久九九久久精品 | 亚洲国产日产韩国欧美综合 | 欧美大尺度aaa级毛片 | 久久一日本道色综合久久m 久久伊人成人网 | 亚洲在线视频播放 | 国内精品美女写真视频 |