您现在的位置是:首页 > 文章详情

Java编程——重构-你为什么要对参数赋值?

日期:2018-07-17点击:384

对于学过多门语言的开发者来说,应该都明白在不同语言中对参数赋值有着不同的意义,

总的来说参数有值传递和引用传递两种,

而在Java中只有值传递的概念。

这意味着在方法内对参数赋值是没有意义的。

而且还很容易引起代码的误解。

对于初学者来说这一点比较重要,可能不是很容易理解,我们用例子来说明。

修改参数

我们来看个简单的例子,在这个例子里面我们在方法内对参数进行了修改,

这段代码的输出还不至于让人糊涂,

但如果修改的是对象的话,代码可能就有误导性了

修改参数对象

为了说明这个问题,我写了一个demo代码,当然代码是完全跑不通的。。只是为了让代码更容易理解,所以才这么写,

这段代码理解上来就是,实例化了一个日期对象是4月1日,然后在方法内对日期加了一天,

然后再对这个日期(应该变成了4月2日)换车一个5月2日的对象,

这时候就可以验证对参数赋值和对参数修改的区别所在。

如果这代码运行正常的话,输出应该是下面这样

你看,在方法内对参数赋值是没有意义的,因为Java它传递的是值,而不是引用,所以并不能够修改原引用的数值。

这对于从 C 这种可以传引用的语言转过来的开发者来说其实有点别扭,

当然他们也可能会被这种代码误导。

总结

Java是一门传值语言,在coding中其实应该尽量避免对参数赋值的行为,

如果你看到代码中有这样的代码,

请尽情重构了它吧!

欢迎工作一到五年的Java工程师朋友们加入Java架构开发:468947140

点击链接加入群聊【Java-BATJ企业级资深架构】:https://jq.qq.com/?_wv=1027&k=5zMN6JB

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

对本文感兴趣、喜欢的欢迎关注小编,小编持续更新

原文链接:https://yq.aliyun.com/articles/661580
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章