Java对象初始化顺序

单一类:(静态成员变量&静态初始化块)<(成员变量&初始化块)<构造函数

 

public class 对象初始化顺序 {
    public static void main(String[] args){
        Person p = new Person();
    }
}
class Person{
    public static String staticfield ="静态成员变量";
    public String field ="成员变量";
    static
    {
        System.out.println(staticfield);
        System.out.println("静态初始化块");
    }
    {
        System.out.println(field);
        System.out.println("初始化块");
    }
    Person(){ 
        System.out.println("构造函数");
    }
    
}

输出结果

静态成员变量
静态初始化块
成员变量
初始化块
构造函数

继承类:(父类静态成员变量&父类静态初始化块)<(子类静态成员变量&子类静态初始化块)<(父类变量&父类初始化块)<(父类构造器&子类变量)<(子类初始化块&子类构造器)

 

括号内根据出现的先后顺序决定。

posted @ 2012-06-21 17:37  Carve_Time  阅读(141)  评论(0编辑  收藏  举报