Parameters, Local Variables, and Overloading

14. Two Objects


Answer:

Mystery sum: 40
sum: 99

Two Objects

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 );
}
}

Question 14:

Now what is printed?