Everything in java is pass by value, so when you pass a reference into a function, you are getting a COPY of that reference (i.e. two references that point at the same thing).
In another(), v.i = 20 actually changes the original object. But when you say v = vh, you are making that reference point to something entirely different from what was passed in, so any modifications to that have no relationship with the v that object originally passed in.
A teeny tiny vulgar attempt to get you to buy our stuff
Devious Experiments for a Truly Passive Greenhouse!