Your problem is you have declared a local variable in the second block, with the same name as the static variable.
So i
in i += 2;
in the second block is updating the i
passed to the method, and not the static field.
So each call to m(i);
will update i
to 3, then do nothing with it. Confirm by adding System.out.println(i);
to the method and they will both print 3
.
If you wanted to update the static variable in the second method, you could use world.i += 2;
.
5
solved Variables in java [closed]