Hi, please look at the code snippets below........
a.)
public class Test{
private int i = j;
private int j = 10;
public static void main(String args[]){
System.out.println((new Test()).i);
}
}
throws a compilation error
b.)
public class Test{
private int i = j;
private static int j = 10;
public static void main(String args[]){
System.out.println((new Test()).i);
}
}
compiles well and gives an output 10;
c.)
public class Test{
private static int i = j;
private static int j = 10;
public static void main(String args[]){
System.out.println((new Test()).i);
}
}
once again doesn't compile
d.)
public class Test{
private int i = giveMeJ();
private int j = 10;
private int giveMeJ(){
return j;
}
public static void main(String args[]){
System.out.println((new Test()).i);
}
}
compiles fine but gives an output 0 (???)
e.)
public class Test{
private int i = giveMeJ();
private static int j = 10;
private static int giveMeJ(){
return j;
}
public static void main(String args[]){
System.out.println((new Test()).i);
}
}
gives me 10
and finally
f)
public class Test{
private static int i = giveMeJ();
private static int j = 10;
private static int giveMeJ(){
return j;
}
public static void main(String args[]){
System.out.println((new Test()).i);
}
}
gives me 0;
Can somebody please explain me the reasons for codes working in the way shown?