Вопрос

Какие символы допустимы в имени класса Java?Какие еще правила регулируют имена классов Java (например, имена классов Java не могут начинаться с цифры)?

Это было полезно?

Решение

Вы можете использовать практически любой символ, включая большинство символов Юникода!Точное определение содержится в Спецификация языка Java в разделе 3.8:Идентификаторы.

Ан идентификатор представляет собой последовательность неограниченной длины Java-буквы и Java-цифры, первым из которых должен быть Java-письмо. ...

Буквы и цифры могут быть взяты из всего набора символов Юникода.Это позволяет программистам использовать в своих программах идентификаторы, написанные на их родном языке.

Идентификатор не может иметь то же написание (последовательность символов Юникода), что и ключевое слово (§3.9), логический литерал (§3.10.3) или нулевой литерал (§3.10.7), иначе возникает ошибка времени компиляции.

Однако см. этот вопрос стоит ли вам это делать.

Другие советы

Каждый язык программирования имеет свой собственный набор правил и соглашений относительно типов имен, которые вам разрешено использовать, и язык программирования Java не является исключением.Правила и соглашения по именованию переменных можно резюмировать следующим образом:

  • Имена переменных чувствительны к регистру.Именем переменной может быть любой допустимый идентификатор — последовательность букв и цифр Юникода неограниченной длины, начинающаяся с буквы, знака доллара «$» или символа подчеркивания «_».Однако по соглашению имена переменных всегда начинаются с буквы, а не с «$» или «_».Кроме того, символ доллара по соглашению вообще никогда не используется.В некоторых ситуациях вы можете столкнуться с ситуациями, когда автоматически сгенерированные имена будут содержать знак доллара, но в именах переменных всегда следует избегать его использования.Аналогичное соглашение существует и для символа подчеркивания;Хотя технически допустимо начинать имя переменной с «_», такая практика не рекомендуется.Пробелы не допускаются.

  • Последующие символы могут быть буквами, цифрами, знаками доллара или символами подчеркивания.К этому правилу также применимы условности (и здравый смысл).Выбирая имя для переменных, используйте полные слова вместо загадочных сокращений.Это облегчит чтение и понимание вашего кода.Во многих случаях это также сделает ваш код самодокументируемым;например, поля с именами «каденция», «скорость» и «передача» гораздо более интуитивны, чем сокращенные версии, такие как s, c и g.Также имейте в виду, что выбранное вами имя не должно быть ключевым словом или зарезервированным словом.

  • Если выбранное вами имя состоит только из одного слова, напишите это слово строчными буквами.Если оно состоит из более чем одного слова, начинайте с заглавной буквы каждого последующего слова.Имена gearRatio и currentGear являются яркими примерами этого соглашения.Если ваша переменная хранит постоянное значение, например static final int NUM_GEARS = 6, соглашение немного меняется: каждая буква пишется с заглавной буквы, а последующие слова отделяются символом подчеркивания.По соглашению символ подчеркивания нигде больше не используется.

От официальный учебник по Java.

В дополнение к предыдущим ответам стоит отметить, что:

  1. Java допускает использование любого символа валюты Unicode в именах символов, поэтому все следующее будет работать:

$ var1 £ var2 € var3

Я считаю, что использование символов валюты зародилось в C/C++, где переменные, добавляемые в ваш код компилятором, обычно начинались с «$».Очевидным примером в Java являются имена файлов «.class» для внутренних классов, которые по соглашению имеют формат «Outer$Inner.class».

  1. Многие программисты C# и C++ принимают соглашение о размещении «I» перед интерфейсами (так называемые чистые виртуальные классы в C++).Это не требуется и, следовательно, не делается в Java, поскольку ключевое словоimpls очень ясно дает понять, является ли что-то интерфейсом.

Сравнивать:

класс Сотрудник:общедоступный IPayable //C++

с

класс Сотрудник:IPayable //C#

и

класс Сотрудник реализует Payable //Java

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

частная двойная зарплата;

Незначительное меньшинство ставит подчеркивание после имени поля, например.

частная двойная зарплата_;

Как уже заявил Джейсон Коэн, Спецификация языка Java определяет, что такое законный идентификатор, в разделе 3.8:

«Идентификатор-это неограниченная длина последовательности явов и цифр Java, первая из которых должна быть буква Java.[...] «Буква Java» — это символ, для которого метод Character.isJavaIdentifierStart(int) возвращает true.«Буква или цифра Java» — это символ, для которого метод Character.isJavaIdentifierPart(int) возвращает true».

Надеюсь, это ответ на ваш второй вопрос.Что касается вашего первого вопроса;И учителя, и (насколько я помню) компиляторы Java учили меня, что имя класса Java должно быть идентификатором, начинающимся с заглавной буквы A-Z, но я не могу найти надежного источника по этому поводу.При использовании OpenJDK не появляется никаких предупреждений, если имена классов начинаются со строчных букв или даже со знака $.Однако при использовании знака $ вам придется экранировать его, если вы компилируете из оболочки bash.

Я хотел бы добавить к ответу Босника, что любой допустимый символ валюты является допустимым для идентификатора в Java.this€is является юридическим идентификатором, как и €this, а также €.Однако я не могу понять, как отредактировать его ответ, поэтому вынужден опубликовать это тривиальное дополнение.

Какие еще правила регулируют имена классов Java (например, имена классов Java не могут начинаться с цифры)?

  • Имена классов Java обычно начинаются с заглавной буквы.
  • Имена классов Java не могут начинаться с цифры.
  • если в имени класса несколько слов, например «MyClassName», каждое слово должно начинаться с заглавной буквы.например, «MyClassName». Это соглашение об именах основано на ВерблюжийЧехол Тип.

Имена классов должны быть существительными в UpperCamelCase, с заглавной буквой каждого слова.Используйте целые слова — избегайте аббревиатур и сокращений (если только аббревиатура не используется гораздо более широко, чем длинная форма, например URL или HTML).Соглашения об именах можно прочитать здесь:

http://www.oracle.com/technetwork/java/codeconventions-135099.html

Идентификаторы используются для имен классов, имен методов и имен переменных.Идентификатор может представлять собой любую описательную последовательность прописных и строчных букв, цифр или символов подчеркивания и знака доллара.Они не должны начинаться с цифры, чтобы их не спутали с числовым литералом.Опять же, Java чувствителен к регистру, поэтому VALUE — это другой идентификатор, чем Value.Некоторые примеры действительных идентификаторов:

AvgTemp, счетчик a4, $test, this_is_ok

Недопустимые имена переменных включают:

2счета, высокая температура, Не/ок

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top