第十章 使用变量的一般事项

 

10.1 数据认知

 

10.2 轻松掌握变量定义

 

10.3 变量初始化原则

1、在声明变量的时候初始化

2、在靠近变量第一次使用的位置初始化它

3、理想情况下,在靠近第一次使用变量的位置声明和定义该变量

4、在可能情况下使用final或者const

5、特别注意计数器和累加器:i、j、k、sum、total等,这些变量

6、在类的构造函数里初始化该类成员

7、一次性初始化具名常量,用可执行代码初始化变量

8、使用编译器设置自动初始化所有变量

9、利用编译器警告信息

10、检出输入参数的合法性

11、使用内存访问工具检查错误的指针

12、在程序开始时初始化工作内存

 

10.4 作用域

那些介于同一变量多个引用点之间的代码成为“攻击窗口”。

 

跨度:对a的第一次引用和第二次引用之间存在两行代码,a的跨度为2

a=0;//first
b=0;
c=0;
a=b+c;//second

 当把变量的引用点靠在一起时,也就使得代码的阅读者能每次只关注于一部分代码,跨度增大不利于阅读和理解程序。

 

存活时间:变量开始于引用它的第一条语句,结束语引用它的最后一条语句

变量在使用时应该尽可能缩短跨度和存活时间。

 

减小作用域的一般原则:

1、在循环开始之前再去初始化该循环里使用的变量,而不是在该循环所属的子程序的开始初初始化变量。

2、直到变量即将被使用时在为其赋值。

3、把相关的语句放到一起。

4、把相关语句组成提取成单独的子程序。

5、开始时采用最严格的可见性,然后根据需要扩展变量的作用域

尽量是变量局部化,特定的循环-->子程序-->private变量-->protected变量-->package可见-->全局可见

 

 10.5 持续性

 与持续性相关的是变量的生命周期比你想象的要短,使用前要注意检查,确保变脸可用及取值正确。

 

10.6 绑定时间

 

//编写代码时绑定
titleBar.color = 0xFF;
//编译时绑定
private static final int COROR_BLUE = 0xFF;
private static final int TITLE_BAR_COROR= COROR_BLUE;
titleBar.color = TITLE_BAR_COROR;
//运行时绑定
titleBar.color = ReadTitleBarColor();

 编码时-->编译时-->加载时(属性文件,配置文件、外部数据源)-->对象实例化-->即时

绑定时间越早灵活性越差,复杂度也会越低。灵活性强,支持灵活性的代码就会越复杂,出错几率也会越高。

 

10.7 数据类型和控制结构之间的关系

 

10.8 为变量指定单一的用途

 

每个变量只用于单一的用途,避免变量转化为“临时”变量。

 

避免然代码具有隐含含义,pageCount在正常情况下表示纸张数量,是一个整数,pageCount=-1时表示有错误发生,整数类型客串了boolean类型。

 

确保使用了所有已经声明的变量。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(第十章 使用变量的一般事项)