一、静态变量
- 静态变量也叫类变量
- 解决魔法数字问题
- 用成员变量来声明一个常量也浪费
下面的代码示例中用了一个0.9,代码的编写者知道是什么含义,当时你的同事或者其他人来阅读的时候就不是那么好理解了。
示例:
public double buy(int count, boolean isVIP) {
if (count > this.count) {
return -1;
}
this.count -= count;
return isVIP ? soldPrice * count * 0.95 : soldPrice * count;
}
修改后代码:
public static double VIP_DISCOUNT = 0.95;
public double buy(int count, boolean isVIP) {
if (count > this.count) {
return -1;
}
this.count -= count;
return isVIP ? soldPrice * count * VIP_DISCOUNT : soldPrice * count;
}
二、使用:
- 使用
static
修饰。 - 静态变量的命名使用 大写字母加下划线的组合构成:比如:
AA_BB_CC
。 - 静态变量多数情况下设置为
public
,所有的代码均可以使用
如果不加pubic,则仅当前包可用。 静态变量仅只有一份。类的成员变量,每个实例单独有一个。
- 使用静态变量的两种方式。
a、使用类名的点操作符(.)+ 变量名来访问
eg:
<TestMerchandiseV2WithStaticVariable.java>
package day06;
public class TestMerchandiseV2WithStaticVariable {
public static void main(String[] args) {
System.out.println(MerchandiseV2WithStaticVariable.DISCOUNT_FOR_VIP);
}
}
<MerchandiseV2WithStaticVariable.java>
public class MerchandiseV2WithStaticVariable {
public static double DISCOUNT_FOR_VIP = 0.9;
}
b、使用
import static
将静态变量导入,直接使用变量名:
可以使用import static 最后加 * 将一个类中的所有静态变量引入。
package day06;
import static day06.MerchandiseV2WithStaticVariable.DISCOUNT_FOR_VIP;
public class TestMerchandiseV2WithStaticVariable {
public static void main(String[] args) {
System.out.println(DISCOUNT_FOR_VIP);
}
}
网友评论