The following code prints: 0 Why??? public class AQuestion { private int i = giveMeJ(); private int j = 10; private int giveMeJ() { return j; } public static void main(String args[]) { System.out.println((new AQuestion()).i); } }
Actually, the program shown in the link is just different enough from the program under consideration that the explanation given in the link doesn't seem to suffice for the present case. The only explanation I can come up with is that when private int i = giveMeJ(); is invoked, j has been given a default value of 0 and the j = 10 hasn't occurred yet.