1. 程式人生 > >從一個例項看java,new一個物件時的初始化順序

從一個例項看java,new一個物件時的初始化順序

例子如下:

package com.zhiru;

class ADemo {
	private static int id;
	static {
		id = 0;
		System.out.println("id的值為" + id);
	}
	{
		System.out.println("進入例項初始化子句...");
	}

	ADemo() {
		System.out.println("進入ADemo的建構函式--->" + ADemo.class);
	}
}

public class ClassDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new ADemo();
	}

}

輸出:

id的值為0
進入例項初始化子句...
進入ADemo的建構函式--->class com.zhiru.ADemo

從輸出可以看出java在new一個物件時的初始化順序是這樣的:

首先初始化靜態語句塊

然後是例項初始化子句

最後是類的構造器。