ITPub博客

首页 > 应用开发 > Java > JAVA对象的初始化顺序

JAVA对象的初始化顺序

原创 Java 作者:壹頁書 时间:2013-12-19 10:55:38 0 删除 编辑
JAVA对象初始化顺序,实验代码如下:

  1. class Base
  2. {
  3.     private int i=Test.print("Base 数据成员i");
  4.     private static int I=Test.print("Base 静态成员I");
  5.     private static int J=Test.print("Base 静态成员J");
  6.     private static int K=Test.print("Base 静态成员K");
  7.     //静态初始化块
  8.     static {
  9.         System.out.println("Base 静态初始化块");
  10.     }
  11.     //匿名初始化块
  12.     {
  13.         System.out.println("Base 匿名初始化块");
  14.     }
  15.     public Base(){
  16.         System.out.println("Base 构造函数");
  17.     }
  18. }

  19. class Derived extends Base{
  20.     private int i=Test.print("Derived 数据成员i");;
  21.     private static int I=Test.print("Derived 静态成员I");;
  22.     //静态初始化块
  23.     static {
  24.         System.out.println("Derived 静态初始化块");
  25.     }
  26.     //匿名初始化块
  27.     {
  28.         System.out.println("Derived 匿名初始化块");
  29.     }
  30.     
  31.     public Derived(){
  32.         System.out.println("Derived 构造函数");
  33.     }
  34.     
  35. }

  36. public class Test{
  37.     public static int print(String string) {
  38.         System.out.println(string);
  39.         return 0;
  40.     }
  41.     public static void main(String[] args) {
  42.         Base b=new Derived();
  43.     }
  44. }
    
       运行结果如下:
            Base 静态成员I
            Base 静态成员J
            Base 静态成员K
            Base 静态初始化块
            Derived 静态成员I
            Derived 静态初始化块
            Base 数据成员i
            Base 匿名初始化块
            Base 构造函数
            Derived 数据成员i
            Derived 匿名初始化块
            Derived 构造函数

其中Base是父类,Derived是子类,根据以上实验结果得出JAVA初始化的顺序

类装载阶段
    1.父类静态成员
    2.父类静态初始化块
    3.子类静态成员
    4.子类静态初始化块
    
对象阶段
    5.父类数据成员
    6.父类匿名初始化块
    7.父类构造函数
    8.子类数据成员
    9.子类匿名初始化块
    10.子类构造函数
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1063745/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6339838