方法参数
基本数据类型
double percent = 10;
tripleValue(percent);
public static void tripleValue(double x){
x = 3*x;
}
- percent值在调用前后的数据并没有发生改变,原因:x为percent值的一个副本,x被增大3倍后,在方法结束后被丢弃,而percent并没有参与在方法的计算中
对象引用
Employee harry = new Employee(...);
tripleSalary(harry);
- harry值在调用前后发生了改变,原因:x为harry值的一个副本,且该方法中的x和harry引用的是同一个Employee对象的harry,则x增大3倍,即为harry值增大3倍,虽然在方法结束后,x被丢弃,但harry值大小已经被增大3倍
对象引用(使一个对象参数引用另一个新对象)
var a = new Employee(...);
var b - new Employee(...);
swap(x,y);
public static void swap(Employee x,Employee y){
Employee temp = x;
x = y;
y = temp;
}
程序失败效果:
Testing swap:
Before:a = Alice
Before:b = Bob
End of method:x = Bob
End of method:y = Alice
After:a = Alice
After:b = Bob