静态成员可以重新初始化,如果是,怎么办?

时间:2018-08-17 06:57:38

标签: java

我点击了链接static and final in java来了解static和final之间的区别,但发现可以重新初始化static变量,而对于final我们无法做到这一点,为什么有人可以帮我举例说明呢? 可以通过static方法更改static成员,这是否意味着重新初始化,请让我知道我的理解正确与否?

3 个答案:

答案 0 :(得分:1)

staticfinal的含义完全不同。

static String s = "Hello";

这意味着该类的所有实例之间仅共享该变量的一个实例。

final String s = "Hello";

这意味着s的值在首次设置后就无法更改。

您也可以拥有static final

static final String s = "Hello";

现在您同时拥有两者,只有一个,并且永远不变。

答案 1 :(得分:0)

final关键字的属性是确保变量在初始化后不能更改状态。强制用户在声明或在构造函数中进行初始化。

答案 2 :(得分:0)

这是2个完全不同的关键字,具有不同的功能:

  • “静态”-一个类变量,该类变量共享给该类的所有实例,而不是特定实例。您可以在任何需要的地方进行修改(取决于上下文)。

  • “最终”是一种类型或变量,您只能分配一次,并且不能修改其引用,但是从另一面来说,您可以修改所引用对象的内容。

结合这2个关键字,您可能会得到一些有趣的结果:

  • “最终静态”,您可以定义一个常量-可以从任何实例访问且不能修改引用。

希望这可以帮助您理解。