正在阅读:深入剖析java类的构造方式深入剖析java类的构造方式

2004-08-27 10:14 出处:CSDN 作者:chensheng913 责任编辑:linjixiong

  反编译:javap -c -classpath . Child
  输出的结果是(已经经过标记,交替使用黑体和斜体表示要讲解的每一块):


  Compiled from InitializationTest.java
  class Child extends Parent {
  int cm1;
  int cm2;
  int cm3;
  Other co;
  public static int scm1;
  static {};
  Child();
  Child(int);
  int cmethod();
  static void staticmethod();
  }

  Method static {}
  0 bipush 10
  2 putstatic #22 <Field int scm1>
  5 getstatic #20 <Field java.io.PrintStream out>
  8 ldc #5 <String "Child's static initialize block">
  10 invokevirtual #21 <Method void println(java.lang.String)>
  13 return

  Method Child()
  0 aload_0
  1 invokespecial #14 <Method Parent()>
  4 aload_0
  5 bipush 10
  7 putfield #16 <Field int cm2>
  10 aload_0
  11 aload_0
  12 invokevirtual #18 <Method int cmethod()>
  15 putfield #17 <Field int cm3>
  18 getstatic #20 <Field java.io.PrintStream out>
  21 ldc #2 <String "Child's instance initialize block">
  23 invokevirtual #21 <Method void println(java.lang.String)>
  26 aload_0
  27 new #8 <Class Other>
  30 dup
  31 invokespecial #13 <Method Other()>
  34 putfield #19 <Field Other co>
  37 getstatic #20 <Field java.io.PrintStream out>
  40 ldc #1 <String "Child's default constructor">
  42 invokevirtual #21 <Method void println(java.lang.String)>
  45 return

  Method Child(int)
  0 aload_0
  1 invokespecial #12 <Method Child()>
  4 aload_0
  5 iload_1



察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品