Mystery sum: 40 sum: 99
Colors in the following show how this works. this
is used in the constructor where
the instance variable, not the parameter, should be used.
class Mystery { private int sum; public Mystery( int sum ) { this.sum = sum; } public void increment( int inc ) { sum = sum + inc; System.out.println("Mystery sum: " + sum ); } } public class Tester { public static void main ( String[] args) { int sum = 99; Mystery myst = new Mystery( 34 ); myst.increment( 6 ); System.out.println("sum: " + sum ); } }
Now look at this modified version:
class Mystery { private int sum; public Mystery( int x ) { sum = x; } public void increment( int inc ) { sum = sum + inc; System.out.println("Mystery sum: " + sum ); } } public class Tester { public static void main ( String[] args) { Mystery mystA = new Mystery( 34 ); Mystery mystB = new Mystery( 13 ); mystA.increment( 6 ); mystB.increment( 7 ); } }
Now what is printed?