JAVA 类初始化顺序

来源:互联网 发布:淘宝买家退货发空包裹 编辑:程序博客网 时间:2024/05/22 17:31

1.static 变量首先初始化
2.static模块次之
3. 最后才是构造函数

package ChuShiHua;/* * 结果就是static 变量第一个被初始化 * static 模块第二被初始化 * 接下来才是构造函数的初始化 */public class ChuShiHua {    static String a = "string - a";    static String b;    String c = "string - c";    String d;    static {        printStatic("before static");        b = "string - b";        printStatic("after static");    }    public static void printStatic(String title){        System.out.println("----------------" + title + "----------------");        System.out.println("a = \"" + a + "\"");        System.out.println("b = \"" + b + "\"");        //未初始化,不能使用//      System.out.println("c = \"" + c + "\"");//      System.out.println("d = \"" + d + "\"");    }    //构造函数    public ChuShiHua() {        print("before constructor");        d = "string - d";        print("after constructor");    }    public void print(String title) {        System.out.println("----------------" + title + "----------------");        System.out.println("a = \"" + a + "\"");        System.out.println("b = \"" + b + "\"");        System.out.println("c = \"" + c + "\"");        System.out.println("d = \"" + d + "\"");    }    public static void main(String[] args) {        new ChuShiHua();        }    }
0 0
原创粉丝点击