Java 中的静态最终变量
可能的重复:
私有最终静态属性与私有最终属性
将变量声明为
static final int x = 5;
或
final int x = 5;
如果我只想让变量是局部的,并且是常量(以后不能更改)?
谢谢
可能的重复:
私有最终静态属性与私有最终属性
将变量声明为
static final int x = 5;
或
final int x = 5;
如果我只想让变量是局部的,并且是常量(以后不能更改)?
谢谢
只是有将有预期的效果。final
final int x = 5;
...
x = 10; // this will cause a compilation error because x is final
声明 static 是使它成为类变量,使其可以使用类名进行访问<ClassName>.x
将字段声明为“final”将确保该字段是常量且无法更改。不同之处在于“静态”关键字的使用。
将字段声明为静态意味着它与类型相关联,而不是与实例相关联。即,对于所有对象,只有一个字段副本存在,而不是每个对象的单个副本。因此,可以通过类名访问静态字段。
如您所见,在这两种情况下,您关于字段应为常量的要求都已实现(将字段声明为“final”和“static final”)。
类似的问题是私有最终静态属性与私有最终属性
希望它有帮助