java 形参和实参_Java 实参和形参 引发的……

个人理解(不考虑基本数据类型):

变量是含有对象引用的容器。

一个对象对应唯一一个引用。

一个变量存储一个引用。

一个对象可以存储一个或多个引用(变量)。

赋值是将引用存储到变量中。

如:class A{

private String name;

public setName(String name){

this.name=name;

}

}

在另一个测试类中:A a=new A();

初始化后,对象产生,设对象的引用为“@isrw25”,赋值,使得变量a中存储对象的引用“@isrw25”。变量a可以通过“@isrw25”获取对象。a.setName("theo");

字符串“theo”对象产生,它的引用也产生了,设为“@theo03”,将引用传给形参name变量存储。变量name可以通过“@theo03”获取对象“theo”。

进入set方法public setName(String name){

this.name=name;

}

赋值,使得变量this.

name中存储引用“@theo03”。对象被改变。changeName1(a);

进入changeName1方法,形参a存储实参a的引用,即此时形参和实参指向同一个对象。public changeName1(A a){

a.setName("tom");

}

字符串“tom”对象产生,它的引用也产生了,设为“@tom023”,将引用传给形参name变量存储。进入set方法。赋值,使得变量this.name存储引用“@tom023”。对象被改变。changeName2(a);

进入changeName2方法,形参a存储实参a的引用,即此时形参和实参指向同一个对象。public changeName2(A a){

A a2=new A();

a2.setName("Lin");

a=a2;

}

初始化,产生一个不同于原对象的对象,它们是类A的两个不同实例。设先生成的A实例为前对象,changeName2方法中产生的A实例为后对象。后对象初始化后进入set方法,变量name存储字符串“Lin”的引用。后对象被改变。

a=a2;将a2的引用存储到a中,a指向的对象变为后对象,而不再是前对象了。所以前对象没有被改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值