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

首頁 > 編程 > Java > 正文

深入剖析java類的構造方式

2019-11-17 06:11:17
字體:
來源:轉載
供稿:網友

  概要:本文通過查看一個精心構造的類結構的運行輸出和使用javap工具查看實際生成的java字節碼(bytecode)向java程序員展示了一個類在運行時是如何構造生成的。

  要害字: java 構造 javap 字節碼 bytecode

  按照java規范,一個類實例的構造過程是遵循以下順序的:

  1.假如構造方法(constrUCtor,也有翻譯為構造器和構造函數的)是有參數的則進行參數綁定。

  2.內存分配將非靜態成員賦予初始值(原始類型的成員的值為規定值,例如int型為0,float型為0.0f,boolean型為false;對象類型的初始值為null),靜態成員是屬于類對象而非類實例,所以類實例的生成不進行靜態成員的構造或者初始化,后面將講述靜態成員的生成時間。

  3.假如構造方法中存在this()調用(可以是其它帶參數的this()調用)則執行之,執行完畢后進入第6步繼續執行,假如沒有this調用則進行下一步。

  4.執行顯式的super()調用(可以是其它帶參數的super()調用)或者隱式的super()調用(缺省構造方法),此步驟又進入一個父類的構造過程并一直上推至Object對象的構造。

  5.執行類申明中的成員賦值和初始化塊。

  6.執行構造方法中的其它語句。

  現在來看看精心構造的一個實例:


  class Parent
  {
  int pm1;
  int pm2=10;
  int pm3=pmethod();
  {
  System.out.  }
  public static int spm1=10;
  static
  {
  System.out.println("Parent's static initialize block");
  }
  
  Parent()
  {
  System.out.println("Parent's default constructor");
  }
  static void staticmethod()
  {
  System.out.println("Parent's staticmethod");
  }


  







  int pmethod()
  {
  System.out.println("Parent's method");
  return 3;
  }
  }

  class Child extends Parent
  {
  int cm1;
  int cm2=10;
  int cm3=cmethod();
  Other co;
  public static int scm1=10;
  {
  System.out.println("Child's instance initialize block"); 
  }
  static
  {
  System.out.println("Child's static initialize block");
  }
  
  Child()
  {
  co=new Other();
  System.out.println("Child's default constructor");
  }
  Child(int m)
  {
  this();
  cm1=m;
  System.out.println("Child's self-define constructor");
  }
  static void staticmethod()
  {
  System.out.println("Child's staticmethod");
  }
  
  int cmethod()
  {
  System.out.println("Child's method");
  return 3;
  }

  }

  class Other
  {
  int om1;
  Other() {
  System.out.println("Other's default constructor");
  }

  }

 






  

  public class InitializationTest
  {
  public static void main(String args[])
  {
  Child c;
  System.out.println("program start");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃园市| 五峰| 迭部县| 永泰县| 福建省| 吉安县| 丹阳市| 蓝田县| 东海县| 隆昌县| 金秀| 桃园市| 海口市| 罗田县| 固镇县| 东阳市| 拉萨市| 金溪县| 祁门县| 双柏县| 怀宁县| 钟祥市| 铜陵市| 易门县| 福州市| 宁津县| 昌宁县| 大邑县| 重庆市| 松桃| 西充县| 商水县| 岳阳县| 历史| 拉萨市| 双辽市| 武威市| 扶沟县| 金溪县| 漯河市| 枣阳市|