Java编程——重构-你为什么要对参数赋值?
对于学过多门语言的开发者来说,应该都明白在不同语言中对参数赋值有着不同的意义, 总的来说参数有值传递和引用传递两种, 而在Java中只有值传递的概念。 这意味着在方法内对参数赋值是没有意义的。 而且还很容易引起代码的误解。 对于初学者来说这一点比较重要,可能不是很容易理解,我们用例子来说明。 修改参数 我们来看个简单的例子,在这个例子里面我们在方法内对参数进行了修改, 这段代码的输出还不至于让人糊涂, 但如果修改的是对象的话,代码可能就有误导性了 修改参数对象 为了说明这个问题,我写了一个demo代码,当然代码是完全跑不通的。。只是为了让代码更容易理解,所以才这么写, 这段代码理解上来就是,实例化了一个日期对象是4月1日,然后在方法内对日期加了一天, 然后再对这个日期(应该变成了4月2日)换车一个5月2日的对象, 这时候就可以验证对参数赋值和对参数修改的区别所在。 如果这代码运行正常的话,输出应该是下面这样 你看,在方法内对参数赋值是没有意义的,因为Java它传递的是值,而不是引用,所以并不能够修改原引用的数值。 这对于从 C 这种可以传引用的语言转过来的开发者来说其实有点别扭, 当然...


