Java 中的静态最终变量

2022-09-01 03:35:56

可能的重复:
私有最终静态属性与私有最终属性

将变量声明为

static final int x = 5;

final int x = 5;

如果我只想让变量是局部的,并且是常量(以后不能更改)?

谢谢


答案 1

只是有将有预期的效果。final

final int x = 5;

...
x = 10; // this will cause a compilation error because x is final

声明 static 是使它成为类变量,使其可以使用类名进行访问<ClassName>.x


答案 2

将字段声明为“final”将确保该字段是常量且无法更改。不同之处在于“静态”关键字的使用。

将字段声明为静态意味着它与类型相关联,而不是与实例相关联。即,对于所有对象,只有一个字段副本存在,而不是每个对象的单个副本。因此,可以通过类名访问静态字段。

如您所见,在这两种情况下,您关于字段应为常量的要求都已实现(将字段声明为“final”和“static final”)。

类似的问题是私有最终静态属性与私有最终属性

希望它有帮助


推荐