Java中的静态最终变量

dar*_*sky 36 java static final

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

声明变量之间有什么区别

static final int x = 5;
Run Code Online (Sandbox Code Playgroud)

要么

final int x = 5;
Run Code Online (Sandbox Code Playgroud)

如果我只希望变量是本地的,并且是常量(以后不能更改)?

谢谢

Oh *_*oon 35

刚进行决赛将产生预期的效果.

声明static使其成为类变量,可以通过类名访问它 final


Sat*_*hya 33

将该字段声明为"final"将确保该字段为常量且不能更改.区别在于'static'关键字的使用.

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

正如您所看到的,在两种情况下都可以实现字段应该是常量的要求(将字段声明为"final"和"static final").

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

希望能帮助到你


Pav*_*vel 6

在第一个语句中,您定义变量,该变量对于所有对象(类静态字段)是通用的.

在第二个语句中,您定义变量,该变量属于每个创建的对象(大量副本).

在你的情况下,你应该使用第一个.