Java的参数传递

 Java的对象即引用在头脑里太根深蒂固了,结果导致今天出了问题。如下的代码:

public boolean getElement(int index, Object object)

{

    if(index < 1 || index > length)return false;

    object = elem[index - 1];

    return true;

}

    天真的认为,可以通过object参数传回修改的值,结果却未能如愿。看来对象作为函数参数,也类似于C语言中的指针作为参数,并不一定在函数中的修改就一定能影响到实参的值。这里在函数中改变了object对象的引用(指向),因此不能影响到实参。对于Java中参数的传递做个简要总结:

(1)对于原始数据类型,也就是int、 long、char之类的类型,是传值的,假如你在方法中修改了值,方法调用结束后,那个变量的值没用改变。

(2)对于对象类型,也就是Object的子类,假如在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是假如把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。(这一点和C语言的指针参数太一样了)

因此开始的代码修改为如下:

public Object getElement(int index)

{

    if(index < 1 || index > length)return null;

    return elem[index - 1];

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值