class StaticControlFlow {
static int x = 10;
static int y ;
//First Static Block
static {
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(a);
m1();
System.out.println("static block 1");
}
// Main Method
public static void main(String[] args){
System.out.println("main method");
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(a);
m1();
}
// Static method
public static void m1(){
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(a);
System.out.println("static method m1");
}
// Second Static Block
static {
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(a);
m1();
System.out.println("Second Static Block ");
}
static int z = 100;
static int a ;
}
Error :-
static_control_flow>javac StaticControlFlow.java
StaticControlFlow.java:12: error: illegal forward reference
System.out.println(z);
^
StaticControlFlow.java:13: error: illegal forward reference
System.out.println(a);
^
StaticControlFlow.java:45: error: illegal forward reference
System.out.println(z);
^
StaticControlFlow.java:46: error: illegal forward reference
System.out.println(a);