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