Java方法参数(一)

最近在看《java核心技术卷1》,看到4.5章节的时候解决了以前一直有些疑惑的问题。


记录如下:


首先,在程序设计语言中,将参数传递给方法(或函数)的术语有:


按值调用(call by value)表示方法接收的是调用者提供的值。

按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。

书中还提到了Algol的按名称调用。


在java中:

java程序设计语言总是采用按值调用。也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。


例如,考虑代码:

double percent = 10;
harry.raiseSalary(persent);
暂且不用管这段代码的具体实现,书中这个章节用了雇员类来解释很多事情,我们现在只要知道这种调用的方式并不能让percent的值进行改变就可以了。


以上是一个简单的例子,说明了java参数传递的方式。下面将从参数为基本数据类型和对象引用两种情况进行分析:


方法参数为基本数据类型:

public static void tripleValue(double x)
{
       x = 3 * x;
}

然后调用:

double percent = 10.0;
tripleValue(percent);
调用之后,percent的值还是10.0,并没有什么变化。

下面看一下具体的执行的过程:

1.x被初始化为percent值的一个拷贝,也还是10。

2.x被乘以了3,然后x变成了30,但是percent仍然是10,因为毕竟是对x的操作,并没有改变percent。

3.方法结束之后,x被弃用了,结果percent还是10。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值