static,final,static final - 正确用法以及何时使用它们?

时间:2014-05-06 17:13:49

标签: java static final

我想知道何时应该为变量和(或)方法使用static,final,static final参数。据我所知:

  • final:与c +​​+中的const参数类似。它基本上意味着值(或方法 - 返回值)不会改变。
  • static:这意味着值(或方法)不直接分配给某个对象 - 因此您可以在其他类中使用静态变量(或方法)而无需创建对象
  • final static:这个组合是否意味着你有变量(或方法),你可以在不创建对象(静态)的情况下访问它,并且你无法改变它的值(比如在c ++ const中)(最终)

如果我是对的,那我就得不到一件事。在IntelliJ IDE中,当您将方法声明为public final static时,它指出应该删除final,因为已经指出了static。为什么,如何,何时???

1 个答案:

答案 0 :(得分:9)

static表示字段或方法属于,而不是的各个实例。

当应用于方法与字段(或局部变量)时,

final实际上意味着不同的东西:

  • final变量和字段无法重新分配。这与C ++的const非常相似。
  • final方法无法覆盖仅适用于实例上的方法。在这种意义上使用时,final与C ++的const不相似。

由于您无法覆盖类上的static方法,因此组合修饰符static final 通常冗余,这就是IntelliJ建议您删除其中一个修饰符的原因。

附加说明:

相关问题:"Is it a bad idea to declare a final static method?"