国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

繼承初始化

2019-11-18 12:10:17
字體:
來源:轉載
供稿:網友

  我們有必要對整個初始化過程有所熟悉,其中包括繼續,對這個過程中發生的事情有一個整體性的概念。請觀察下述代碼:
  
  //: Beetle.java
  // The full PRocess of initialization.
  
  class Insect {
   int i = 9;
   int j;
   Insect() {
    prt("i = " + i + ", j = " + j);
    j = 39;
   }
   static int x1 =
    prt("static Insect.x1 initialized");
   static int prt(String s) {
    System.out.println(s);
    return 47;
   }
  }
  
  public class Beetle extends Insect {
   int k = prt("Beetle.k initialized");
   Beetle() {
    prt("k = " + k);
    prt("j = " + j);
   }
   static int x2 =
    prt("static Beetle.x2 initialized");
   static int prt(String s) {
    System.out.println(s);
    return 63;
   }
   public static void main(String[] args) {
    prt("Beetle constrUCtor");
    Beetle b = new Beetle();
   }
  } ///:~
  
  該程序的輸出如下:
  
  static Insect.x initialized
  static Beetle.x initialized
  Beetle constructor
  i = 9, j = 0
  Beetle.k initialized
  k = 63
  j = 39
  
  對Beetle運行Java時,發生的第一件事情是裝載程序到外面找到那個類。在裝載過程中,裝載程序注重它有一個基礎類(即extends要害字要表達的意思),所以隨之將其載入。無論是否預備生成那個基礎類的一個對象,這個過程都會發生(請試著將對象的創建代碼當作注釋標注出來,自己去證實)。
  
  若基礎類含有另一個基礎類,則另一個基礎類隨即也會載入,以此類推。接下來,會在根基礎類(此時是Insect)執行static初始化,再在下一個衍生類執行,以此類推。保證這個順序是非常要害的,因為衍生類的初始化可能要依靠于對基礎類成員的正確初始化。
  
  此時,必要的類已全部裝載完畢,所以能夠創建對象。首先,這個對象中的所有基本數據類型都會設成它們的默認值,而將對象句柄設為null。隨后會調用基礎類構建器。在這種情況下,調用是自動進行的。但也完全可以用super來自行指定構建器調用(就象在Beetle()構建器中的第一個操作一樣)。基礎類的構建采用與衍生類構建器完全相同的處理過程。基礎順構建器完成以后,實例變量會按本來的順序得以初始化。最后,執行構建器剩余的主體部分。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达尔| 昂仁县| 当阳市| 元氏县| 英吉沙县| 宁乡县| 嘉鱼县| 荥经县| 墨脱县| 南充市| 华宁县| 龙岩市| 治县。| 乌恰县| 浏阳市| 大洼县| 元氏县| 磐安县| 当雄县| 南宫市| 当阳市| 子长县| 锡林郭勒盟| 辽源市| 义马市| 宝兴县| 吉水县| 南汇区| 尼玛县| 文登市| 铜陵市| 锡林浩特市| 从江县| 临沂市| 合江县| 玉门市| 游戏| 嘉义县| 漾濞| 永福县| 穆棱市|