2021-02-16

方法参数

基本数据类型

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
上一篇:python小功能


下一篇:java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解