java值 与引用的传递问题

首先通过代码看一下,

public class Ren {
private int age;
public Ren(int age) {
this.age = age;
}
public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

public class Test20140723 {
public static void main(String[] args) {
Ren r1 = new Ren(15);
new Test20140723().change(r1);
System.out.println(r1.getAge());
}
private void change(Ren r1) {
Ren r2 = new Ren(10);
r1 = r2;
System.out.println("---" + r1.getAge());

}

输出的结果是什么?

是:

---10
15

说明change没有改变外面r1的值,我们来画个图加深一下理解。


在传入change方法的时候 相当于cope了一个r1指向15,然后又new了一个r2指向10,然后r1=r2把change方法里面的r1指向了10,但是原来在main方法里面的r1还是指向15。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值