/** 
   Demo program that uses class <code> Num </code> 
 */ 
public class ParameterTester {
    public static void main( String[] args ) {
	int a1 = 111; 
	Num a2 = new Num(222); 
	Num a3 = new Num(333); 

	System.out.println("before call: \ta1=" + a1 + ", \ta2=" + a2 + ", \ta3=" + a3);
	changeValues(a1, a2, a3); 
	System.out.println("after call: \ta1=" + a1 + ", \ta2=" + a2 + ", \ta3=" + a3);	
    }

    public static void changeValues(int f1, Num n1, Num n2) {
	System.out.println("start call: \tf1=" + f1 + ", \tn1=" + n1 + ", \tn2=" + n2);

	f1 = 999; 
	n1.setValue(888); 
	n2 = new Num(777);

	System.out.println("end call: \tf1=" + f1 + ", \tn1=" + n1 + ", \tn2=" + n2);
    }
}


/**
   Simple number class which has an int data field, a c'tor, 
   a modifier method to set the private field and overrides
   toString method of class <code> Object </code>
  
 */ 
class Num {
    public Num(int update) { value = update; }

    public void setValue(int update) { value = update; }

    public String toString() { return Integer.toString(value); }

    private int value; 
}
