// What happens when an argument is passed to a method which then
// changes its dummy parameter - is the change visible back in main?
// Three cases are tested: 1. parameter is an int, 2. parameter is a
// reference to an object and parameter itself is changed,
// 3. parameter is a reference to an object and a field of the object
// is changed.
public class ParamTest{
int x;
public ParamTest(int x){
this.x = x;
}
public static void setParameter(int param1){
param1 = 5;
}
public static void setObjectParameter(ParamTest objectParameter){
ParamTest pt = new ParamTest(10);
objectParameter = pt;
}
public static void setField(ParamTest param1){
param1.x = 15;
}
public static void main(String [ ] args){
int a = 200;
setParameter(a);
System.out.println(a); // prints 200
ParamTest pt1 = new ParamTest(400);
setObjectParameter(pt1);
System.out.println(pt1.x); // prints 400
ParamTest pt2 = new ParamTest(600);
setField(pt2);
System.out.println(pt2.x); // prints 15
}
}