Мой вопрос касается одного конкретного использования статического ключевого слова. Ключевое слово static
можно использовать для покрытия кодового блока внутри класса, который не принадлежит какой-либо функции. Например, следующий код компилирует:
public class Test {
private static final int a;
static {
a = 5;
doSomething(a);
}
private static int doSomething(int x) {
return (x+5);
}
}
Если вы удалите ключевое слово static
, оно жалуется, потому что переменная a
равна final
. Однако можно удалить как ключевые слова final
, так и static
и скомпилировать его.
Это сбивает меня с толку в обоих направлениях. Как я должен иметь раздел кода, который не принадлежит ни одному методу? Как можно вызвать его? В общем, какова цель этого использования? Или лучше, где я могу найти документацию об этом?