the question is... when exactly does j get the value of 10? the 'return j' statement returns a 'zero'. I expected it tobe a 10.
Instance variables (that are not compile time constants) get initialized in the order that they appear in the source (from top to bottom, and left to right). And any forward reference to them, will have them at their default values.
Henry