Правила именования переменных, констант, классов, интерфейсов, перечислений, пакетов в Java

В разных языках программирования вы встретите разные стили наименования переменных, например: some_counter, $somecounter, SomeCounter, someCounter, mSomeCounter и так далее.

В языке Java с этим строго, всего несколько правил:

1) Все переменные и методы в Java всегда именуются только используя так называемую нижнююВерблюжьюНотацию или lowerCamelCase.

В этой нотации, когда переменная состоит из нескольких слов, то
а) все слова пишутся слитно,
б) первое слово пишется с маленькой буквы,
в) каждое следующее слово пишется с большой буквы.

Переменные никогда не должны начинаться со знака подчеркивания или знака доллара (хоть формально такую переменную и можно задекларировать).

Пример:

int someCounter;
double himmelDonnerWetter;
Ship[] ourShips;
char friendZone;

1a) Если в переменной встречается аббревиатура из трех или более букв – то используется CamelCase вместо верхнего регистра (например, вместо parseDBMXMLFromIPAddress нужно писать parseDbmXmlFromIPAddress). Двухбуквенные аббревиатуры можно тоже писать используя CamelCase, если это повысит читабельность (например, parseDbmXmlFromIpAddress).

2) Константы именуют только БОЛЬШИМИ_БУКВАМИ с использованием подчеркивания для связи слов.

Пример:

static final int MAX_PARTICIPANTS = 10;

3) Все названия классов, интерфейсов и перечислений даются только с использованием ВерхнейВерблюжьейНотации или UpperCamelCase

В этой нотации, когда переменная состоит из нескольких слов, то
а) все слова пишутся слитно,
б) первое слово пишется с большой буквы,
в) каждое следующее слово пишется с большой буквы.

Пример:

class SomeCounter {
}
class HimmelDonnerWetter {
}
class BigShip {
}



Имейте ввиду, что неспособность следовать этим правилам может привести к путанице и ошибочному коду. Например, widget.expand() и Widget.expand() подразумевают существенно различное поведение: widget.expand() подразумевает вызов метода expand() в экземпляре с именем widget, тогда как Widget.expand() подразумевает вызов статического метода expand() в классе Widget.

4) Пакеты именуют только маленькими_буквами с использованием подчеркивания для связи слов.

Например:

package io.khasang.java.big_lesson;

ОК! ИДЕМ ДАЛЬШЕ!  
Обсуждение

0 комментарии