我点击了链接static and final in java来了解static和final之间的区别,但发现可以重新初始化static变量,而对于final我们无法做到这一点,为什么有人可以帮我举例说明呢? 可以通过static方法更改static成员,这是否意味着重新初始化,请让我知道我的理解正确与否?
答案 0 :(得分:1)
static
和final
的含义完全不同。
static String s = "Hello";
这意味着该类的所有实例之间仅共享该变量的一个实例。
final String s = "Hello";
这意味着s
的值在首次设置后就无法更改。
您也可以拥有static final
!
static final String s = "Hello";
现在您同时拥有两者,只有一个,并且永远不变。
答案 1 :(得分:0)
final关键字的属性是确保变量在初始化后不能更改状态。强制用户在声明或在构造函数中进行初始化。
答案 2 :(得分:0)
这是2个完全不同的关键字,具有不同的功能:
“静态”-一个类变量,该类变量共享给该类的所有实例,而不是特定实例。您可以在任何需要的地方进行修改(取决于上下文)。
“最终”是一种类型或变量,您只能分配一次,并且不能修改其引用,但是从另一面来说,您可以修改所引用对象的内容。
结合这2个关键字,您可能会得到一些有趣的结果:
希望这可以帮助您理解。