2016-07-26 11 views
0

Я использую среду IDE NetBeans и перед Java, я был программистом на C++. Из C++ я узнаю, что имена постоянных переменных должны содержать только прописные буквы. Я думаю, что большинство языков программирования предполагают, что постоянные переменные должны содержать только прописные буквы с символами подчеркивания для разделения слов.Почему нестатические конечные переменные-члены не обязательны для выполнения постоянных соглашений об именах?

My IDE, NetBeans, только предупреждает меня о соглашении, когда я пытаюсь объявить переменную-член static строчными буквами. Это нормально, если переменная final, но нестатическая.

final int mem1 = 90; // no warning 
static final int mem2 = 90; // warning 

Не следует программист вынужден использовать заглавные буквы для обозначения любого типа (статического, нестатического) постоянного переменных?

+0

Это соглашение об именах. Вы правы, что его следует соблюдать для удобочитаемости, но я не думаю, что это когда-либо будет соблюдаться и не должно применяться. – SomeJavaGuy

+0

Поскольку соглашения об именах не являются частью спецификации Java Language Specification. – EJP

+1

Нестатический 'final' не является реальной константой. Он также может быть инициализирован в конструкторе на основе некоторых расчетных значений времени выполнения. См. Также http://stackoverflow.com/questions/10844268/difference-between-final-variables-vs-static-final-variables –

ответ

6

final не делает значение константой, это просто означает, что значение поля может быть назначено только один раз.

Вот пример непостоянной конечного поля:

public final class IntHolder { 
    private final int value; 

    public IntHolder(int value) { 
    this.value = value; 
    } 

    public int get() { 
    return value; 
    } 
} 

Здесь value поле явно отличается для каждого экземпляра IntHolder, так что это не является постоянной. Именование поля, как константа, просто приведет к путанице.

+0

Я вижу. Благодаря :) –

5

Только константы должны быть в верхнем регистре. Однако это может зависеть от программиста, как он следует за конвенцией. Некоторым также нравится запускать константы с символом «_», за которым следует имя в нижнем регистре. Более того, нет необходимости ставить такую ​​проверку в компилятор, поскольку это может зависеть от представления программиста.

 Смежные вопросы

  • Нет связанных вопросов^_^