聊聊Java 方法中的参数

昨天拜读了一下《Thinking In Java》翻译版,其中有一段话是这样的写,大概的意思是:java方法中的参数 为final类型的,则该参数所指的对象是不可以改变的,这个 翻译真是让人蛋疼的很。

那么我来聊聊这个话的意思:
1、 java 方法中的参数如果为基本数据类型或者String 时,相当于在参数前面自动加上了final,你在方法体内 对 参数的值进行修改,并不会影响方法调用出的变量。
2、 java 方法不能让对象参数引用一个新的对象。什么意思?代码举个例子

pubic class Test{

public void changeArguments(Bean bean){
bean.name = "kaobian";
bean = new Bean();
bean.name="go out";
}

public void static main(String[] args){
Bean bean = new Bean();
bean.name="hello world";
new Test().changeArguments(bean);
System.err.println("modify bean " + bean.name);
//返回的是kaobian而不是go out
}


}
class Bean {
public String name ;
public Bean(){
}
}


这就是说 java方法中的参数不可能改变这个变量所指向的内存地址。
3、java 方法中的参数为final 类型的 非基本类型应用,那么,我们是不可以改变参数所指向的内存地址,但是我们可以改变参数所指向对象的状态,也就是他的属性


这是我一点点才疏学浅的总结,希望高手指点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值