[color=red][size=medium]测试程序,引用[/size][/color]
输出结果:
[color=red][/color]
如果代码如下:
输出结果:
public class Demo {
public static void main(String[] args) {
DemoPro pro = new DemoPro(20, "lishan");
System.out.println("Before change, pro = " + pro.getAge());
changeData(pro);
System.out.println("After changeData(n), pro = " + pro.getAge());
}
public static void changeData(DemoPro pro) {
pro = new DemoPro(26, "liudehua");
System.out.println(pro.getAge());
}
}输出结果:
Before change, pro = 20
26
After changeData(n), pro = 20[color=red][/color]
如果代码如下:
public class Demo {
public static void main(String[] args) {
DemoPro pro = new DemoPro(20, "lishan");
System.out.println("Before change, pro = " + pro.getAge());
changeData(pro);
System.out.println("After changeData(n), pro = " + pro.getAge());
}
public static void changeData(DemoPro pro) {
//pro = new DemoPro(26, "liudehua");
pro.setAge(26) ;
System.out.println(pro.getAge());
}
}输出结果:
Before change, pro = 20
26
After changeData(n), pro = 26
本文通过两个Java示例演示了对象作为参数传递时的行为差异,分别展示了改变对象引用与改变对象属性的效果,并解释了为什么在某些情况下对象在方法外部看起来没有被修改。
370

被折叠的 条评论
为什么被折叠?



