高效Java第四十五条将局部变量的作用域最小化
2017-07-17 本文已影响0人
每天学点编程
作用
与第十三条使类和成员的可访问性最小化本质上是一样的。
将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性。
不良习惯的由来
较早的程序设计语言要求局部变量必须在一个代码块的开头处进行声明,这个习惯应该要改正。
Java允许在任何可以出现语句的地方进行变量声明。
将局部变量的作用域最小化——在第一次使用它的地方声明
要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明。
变量在使用之前进行声明,只会造成混乱,并分散程序员的注意力。
过早地声明局部变量不仅会使它的作用域过早地扩展,而且结束得也过于晚了。
局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处。
如果变量是在“使用它的块”之外被声明的,当程序退出该块之后,该变量仍是可见的。
变量在它的目标使用区域之前或之后被意外使用,后果都将可能是灾难性的。
将局部变量的作用域最小化——在第一次使用它的地方声明——每个局部变量的声明都应该包含一个初始化表达式
如果没有足够信息来对一个变量进行有意义的初始化,就应该推迟这个声明,直到可以初始化为止。
这条规则的例外与try
-catch
语句有关。
将局部变量的作用域最小化——for
循环
for
循环提供了特殊的机会来将变量的作用域最小化。
for
循环,允许声明循环变量,它们的作用域被限定在正好需要的范围之内。
如果在循环终止之后不再需要循环变量的内容,for
循环优于while
循环。
JDK5之前:
for
循环优于while
循环的原因
看看
for
循环:
使用
for
循环,犯“剪切-黏贴”错误的可能性大大降低。for
循环没有必要在两个循环中使用不同的变量名。
for
循环是完全独立地,所以重用变量的名称不会有任何危害。
for
循环比while
循环更简短,增强了可读性。
将局部变量的作用域最小化——for
循环的另一种用法
第二个变量n
被用来保存第一个变量的极限值,从而避免在每次迭代中执行冗余计算的开销。