Thanks for discussing this question,
I�m sorry to here that my explanation (in the simulator software), was not helpful to you.
The key point you have to understand is, the argument you have pass to ANY method, will be evaluated, before sending it to the method. Consider the following example:
AnObject a;
anyMethod( a.getX() + a.getY() );
Before passing any argument to this
anyMethod, the JVM have to evaluate it, and then send the
result of the expression
a.getX()+a.getY() to the
anyMethod. In this case, if there were any System.out.println statements inside the
getX() or
getY() method, those statements will be
executed while the above evaluation.
After that, the result of the above expression will be sent to the method. So,
before executing any statement inside the
anyMethod, the statements inside the
getX() and
getY() method should be executed as first.