| Refresh | Home EGTry.com

java object initialization sequence


Class

package syntax;

public class InitSequence {
	static {
		InitSequenceTest.trace("static {}");
		a=23; //initialize before it is declared.
	}
	
	public static String name=InitSequenceTest.get("public static String name", "hello");
	public static int a=InitSequenceTest.get("public static int a",10);
	
	public int size=InitSequenceTest.get("public int size", 10);
		
	public InitSequence() {
		InitSequenceTest.trace("public InitSequence()");
		
	}
	
	public int getSize() {
		InitSequenceTest.trace("a="+a);
		return size;
	}

}


test driver

package syntax;

public class InitSequenceTest {
	public static int count=1;

	public static void main(String[] args) {
		InitSequence is=new InitSequence();
		is.getSize();
		
	}

	public static void trace(String msg) {
		System.out.println(count+": "+msg);
		count++;
	}
	
	public static int get(String msg,int val) {
		trace(msg);
		return val;
	}
	
	public static String get(String msg, String val) {
		trace(msg);
		return val;
	}
}


output show the initialization sequence

1: static {}
2: public static String name
3: public static int a
4: public int size
5: public InitSequence()
6: a=10