I came across this coding... and just want confirmation about what I understood how the output 121 is received.

```
System.out.print(i++ + obj1.operation(i));

```

In the above code, `i` is zero, but `i` becomes one when it is passed as parameter to the operation method. In method *operation* the system.out.print prints out one and returns the post increment value 2 to above `system.out.print`.

In the above code, the initial value of i and return value of method is added i.e. `0+2=2`, and it prints out 2. And the local variable i in the main method has increased to one in the above code so the next print statement prints 1. Is this the right explanation?

```
public class CalculatorJava {
    public static void main(String[] args) {
        int i = 0;
        CalculatorJava obj1 = new CalculatorJava();
        System.out.print(i++ + obj1.operation(i));
        System.out.println(i);
    }

    public int operation(int i) {
        System.out.print(i++);
        return i;
    }
}

```