| Author |
another perplexing program
|
Jim A Anderson
Greenhorn
Joined: Mar 16, 2004
Posts: 5
|
|
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); } }
|
jim
|
 |
Vicken Karaoghlanian
Ranch Hand
Joined: Jul 21, 2003
Posts: 522
|
|
|
This link will prove to be helpful.
|
- Do not try and bend the spoon. That's impossible. Instead, only try to realize the truth. <br />- What truth? <br />- That there is no spoon!!!
|
 |
Jim A Anderson
Greenhorn
Joined: Mar 16, 2004
Posts: 5
|
|
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.
|
 |
fred rosenberger
lowercase baba
Bartender
Joined: Oct 02, 2003
Posts: 9939
|
|
if you change it to this you can see that j is indeed 0 in the giveMeJ() method, but does get set to 10 in the object iteself.
|
Never ascribe to malice that which can be adequately explained by stupidity.
|
 |
 |
|
|
subject: another perplexing program
|
|
|