91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java關于含有繼承類的成員初始化過程講解

發布時間:2020-09-11 01:08:42 來源:腳本之家 閱讀:155 作者:yangyongUestc 欄目:編程語言

參考資料《Java 編程思想》,關于含有基類的導出類,其成員的初始化過程是一個容易讓人困惑的地方,下面通過具體的實例進行講解,代碼取自《Java 編程思想》,代碼如下:

import static net.mindview.util.Print.*;
/**
 * All rights Reserved, Designed By www.tydic.com
 * 
 * @project: MyExerciseProject
 * @Title: Beetle.java
 * @Package:
 * @Description: TODO(Learn java)
 * @Author: Yang Xiaoyong
 * @Date: 2017年10月30日 下午4:22:19
 * @Version: V1.0
 * @Copyright: 2017 Inc. All rights reserved. 注意:本內容僅限于學習交流使用,禁止外泄以及用于其他的商業目的
 */
public class Beetle extends Insect {
 private int k = printInit("Beetle.k Initialized");
 Beetle() {
 // TODO Auto-generated constructor stub
 print("k = " + k);
 print("j = " + j);
 }
 private static int x2 = printInit("static Beetle.x2 initialized");
 public static void main(String[] args) {
 print("Beetle constructor");
 Beetle beetle = new Beetle();
 }
}
class Insect {
 private int i = 9;
 protected int j;
 Insect() {
 // TODO Auto-generated constructor stub
 print("i = " + i + ". j = " + j);
 j = 39;
 }
 private static int x1 = printInit("static Insert.x1 initialized");
 static int printInit(String s) {
 print(s);
 return 47;
 }
}

程序輸出結果為:

Java關于含有繼承類的成員初始化過程講解

則UML類圖為:

Java關于含有繼承類的成員初始化過程講解

Beetle是導出類,Insect是基類,當程序試圖從main()函數入口點進入,下面是運行過程:

  • 1. 首先需要由加載器將編譯好的Beetle.class文件加載到JVM中。
  • 2. 通過extends 關鍵字識別基類Insect,加載Insect.class文件。

至此,完成類的加載過程。然后,可以進行對象的創建。

對程序輸出結果進行分析:因為靜態成員變量在類加載的時候進行初始化,而在運行main()函數之前,完成加載類的過程。所以在執行main()函數之前,x1, x2已經完成初始化過程,注意此時初始化過程是一個從基類“向外”擴散的,類似導出類的構造器的構建過程。輸出如下:

static Insert.x1 initialized
static Beetle.x2 initialized

之后,在創建Beetle的過程中,其基類的構造器會被自動調用,所以首先執行Inspect構造器里面的內容,完成print()函數,并對j的變量賦值。最后,調用Beetle類自身的構造器進行對象的創建,最終輸出符合分析。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

馆陶县| 宁明县| 仙游县| 开鲁县| 永春县| 衡阳县| 汕头市| 临沧市| 香河县| 深水埗区| 龙泉市| 义马市| 泰宁县| 健康| 巴中市| 茌平县| 托克逊县| 祁连县| 谷城县| 巴马| 将乐县| 和田市| 江阴市| 壤塘县| 石河子市| 青浦区| 理塘县| 米脂县| 克拉玛依市| 辉南县| 大连市| 灵寿县| 饶阳县| 瑞丽市| 崇州市| 景德镇市| 石门县| 兰溪市| 恭城| 中方县| 峨边|