【发布时间】:2014-06-01 17:18:27
【问题描述】:
我想知道,如果我的班级中有这个字段:private final int foo = ...,我应该把它放在静态private static final int foo = ... 中吗?因为如果它是静态的,那么它对我的类的所有实例都是通用的,并且永远不会改变。
有理由不把它放在静态中吗?还是我必须把它放在静态?
【问题讨论】:
-
final确实 not 意味着它对类的所有实例都是通用的。static就是这个意思。 -
不,如果是
final,它仍然仅限于一个实例。static使其共享。 -
我已经编辑过了,谢谢
-
取决于您的要求。如果您希望在所有对象中使用此值而不进行任何更改,即 10 而不是使其成为静态,如果您将为每个对象设置不同的值但在定义一次后无法更改,您可以通过初始化来做到这一点它在构造函数中。