国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:40日期: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
相關文章:
主站蜘蛛池模板: www.日本三级| 俄罗斯美女毛片 | 高清一级毛片 | 国产亚洲精品久久综合影院 | xxxxbbbb国产精品 | 日美三级| 美女视频黄.免费网址 | 中国一级特黄大片毛片 | 青草欧美 | 91成年人视频 | 成人免费看黄网址 | 国产成人精品曰本亚洲 | 国产欧美日韩在线 | 国产黄色三级网站 | 日韩 国产 欧美视频一区二区三区 | 韩国成人毛片aaa黄 韩国福利一区 | 久久国产免费观看 | 欧美级毛片 | 日韩免费一级毛片欧美一级日韩片 | 成人网18免费软件大全 | 国产真实乱子伦精品视手机观看 | 国产成人精品一区二区秒拍 | 一本三道a无线码一区v | 欧美丰满大乳大屁股毛片 | 日韩一级a毛片欧美一级 | 美女18网站 | 美国一级免费 | 欧美日韩视频一区二区在线观看 | 黄在线观看在线播放720p | 精品伊人久久久久网站 | 国产成年人视频 | 日本xxxxxxx69xx | 久久精品视频99 | 日韩特级毛片免费观看视频 | 九九香蕉视频 | 欧美日韩亚洲综合在线一区二区 | jk制服福利在线播放 | 久久精品全国免费观看国产 | 在线亚洲精品国产波多野结衣 | 91成年人| 久久久久久久久久毛片精品美女 |