有人能举例说明你何时在private static场上使用private static final场地?我很难想到一个你想要声明一个private类变量的例子,这个变量可能会发生变化.
kin*_*iko 10
输入Singleton模式:
public class Clazz {
public static void main(String[] args) {
MyObject myObject = MyObject.getInstance();
}
}
class MyObject {
private static MyObject instance;
//I belong to the class, but I need not be created before somebody wants me.
private MyObject() {
}
public static MyObject getInstance() {
if (instance == null) {
instance = new MyObject();
}
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
是.
例如,当你想要一个计数器变量来计算从一个类创建了多少个对象时,你就可以创建它static- 它与类相关联而不是一个对象,但它不是 final因为它正在改变:
protected static int counter = 0;
//constructor
counter++;
Run Code Online (Sandbox Code Playgroud)
值得一提的是:
我没有提到Singleton示例,因为如果你想要是线程安全的,那么变量必须是static和final.