我想知道何时应该为变量和(或)方法使用static,final,static final参数。据我所知:
如果我是对的,那我就得不到一件事。在IntelliJ IDE中,当您将方法声明为public final static时,它指出应该删除final,因为已经指出了static。为什么,如何,何时???
答案 0 :(得分:9)
static
表示字段或方法属于类,而不是类的各个实例。
final
实际上意味着不同的东西:
final
变量和字段无法重新分配。这与C ++的const
非常相似。final
方法无法覆盖,仅适用于实例上的方法。在这种意义上使用时,final
与C ++的const
不相似。由于您无法覆盖类上的static
方法,因此组合修饰符static final
通常冗余,这就是IntelliJ建议您删除其中一个修饰符的原因。
附加说明:
final
变量和字段可以引用可能发生变化的实例,即使引用本身无法更改。final
有第三个意思:final
课程不能被分类。 static
也可以应用于嵌套类(类中的类),但它具有相同的含义:static
嵌套类不完全属于封闭类的一个实例,否则它将属于该实例。 static
个方法,但有一个名为“shadowing”或“方法隐藏”的类似行为,by which a subclass offers a static method of the same name and signature as the subclass。这与覆盖不同,但同样地,static final
methods cannot be shadowed。