方法参数
方法参数是对被传对象拷贝的处理,java核心技术118~120的三张图好好理解。
public class ParamTest {
public static void tripleValue(double x) {
x = 3 * x;
System.out.println("End of method: x = " + x);
}
public static void tripleValue(Employee x) {
x.raiseSalary(200);
System.out.println("End of method: salary = " + x.getSalary());
}
public static void swap(Employee x, Employee y) {
Employee temp = x;
x = y;
y = temp;
System.out.println("End of method: x = " + x.getName());
System.out.println("End of method: y = " + y.getName());
}
public static void main(String[] args)
{
/**
* 测试一:当基本数据类型(如数值、布尔)作为参数传入一个方法时,
* 方法不能改变这个对象的值
*/
System.out.println("测试一:方法能否改变基本数据类型对象的值?");
double value = 1;
System.out.println("调用三倍方法之前的value:" + value);
ParamTest.tripleValue(value);
System.out.println("调用三倍方法之后的value:" + value);
/**
* 测试二:当一个对象作为参数传入一个方法时,
* 方法能改变这个对象的状态
*/
System.out.println("\n测试二:方法能否改变类对象的值?");
Employee e = new Employee("周杰伦", 1);
System.out.println("调用三倍方法之前的salary:" + e.getSalary());
ParamTest.tripleValue(e);
System.out.println("调用三倍方法之后的salary:" + e.getSalary());
}
}