Как правило, конечные статические элементы, в частности, переменные (или статические окончательные, конечно, они могут использоваться в любом порядке без перекрытия значения) широко используются с интерфейсами в Java для определения поведения протокола для класс реализации, который подразумевает, что класс, реализующий (наследует) интерфейс, должен включать все члены этого интерфейса.
Я не могу различать элемент final и final static. Последним статическим членом является тот, который является статическим членом, объявленным как final или что-то еще? В каких конкретных ситуациях они должны использоваться конкретно?
Статическая переменная или конечная статическая переменная никогда не могут быть объявлены внутри метода ни внутри статического метода, ни внутри метода экземпляра. Почему?
Следующий сегмент кода соответственно не будет скомпилирован, и компилятор будет выдавать компиляционную ошибку, если попытается ее скомпилировать.
public static void main(String args[])
{
final int a=0; //ok
int b=1; //ok
static int c=2; //wrong
final static int x=0; //wrong
}