Правила именования идентификаторов
В этой статье мы поговорим о рекомендациях по именованию идентификаторов в Java.
В этой статье мы поговорим о рекомендациях по именованию идентификаторов в Java. Важно помнить, что Java учитывает регистр символов: например, myVar, MyVar и MYVAR — это три разных идентификатора.
При именовании классов, методов, переменных и других идентификаторов рекомендуется придерживаться следующих правил:
1. Классы и интерфейсы
- Имя класса или интерфейса должно начинаться с заглавной буквы. Например - Cat, Dog.
- Если имя состоит из нескольких слов, каждая первая буква последующих слов также должна быть заглавной (формат UpperCamelCase) - PrintReader
- Имена классов обычно являются существительными, например: Cat, Exam, PrintReader. А такие варианты как Eatable и DoSomething являются не очень хорошими именами для классов, они больше подойдут для интерфейсов.
- Имена интерфейсов должны быть в форме прилагательных, таких как Comparable, Iterable, Navigable.
2. Методы
- Имя метода должно начинаться со строчной буквы и далее следует правилам LowerCamelCase.
- Названия должны состоять из сочетания глаголов и существительных, например: getName, doJob, setLastName. Почему глаголов - методы что-то делают.
3. Переменные
- Имя переменной должно начинаться со строчной буквы и далее следовать принципам LowerCamelCase.
- Важно присваивать короткие и понятные имена, которые четко указывают на назначение переменной, например: firstName, buttonHeight.
4. Константы
- В Java константы объявляются с использованием ключевых слов static и final.
- Имена констант должны содержать только заглавные буквы, а слова разделяются символом подчеркивания, например:
MAX_WEIGHT.
5. Пакеты
- В имени пакета используются только маленькие буквы.
- Для коммерческих проектов принято использовать перевёрнутое доменное имя организации; пакет обычно начинаться с com, потом следует имя организации и название проекта. Потом пакеты обычно именуются по какому-то функциональному признаку. Допустим для организации ExamClouds мы можем создать такой пакет - com.examclouds.javacore и дальше у нас могут быть пакеты lesson1, lesson2 и так далее. Есть и другие корневые домены: org (некоммерческие), net, io.
Часто задаваемые вопросы
Можно ли использовать символы $ и _ в именах идентификаторов?
Технически да: идентификатор может содержать знак доллара $ и подчёркивание _. Но есть нюансы. Символ $ по соглашению зарезервирован для кода, который генерируют инструменты и компилятор, поэтому в обычном коде его использовать не рекомендуется. Одиночное подчёркивание _ (само по себе, как имя переменной) запрещено начиная с Java 9 — это приведёт к ошибке компиляции. Подчёркивание внутри имени (например, MAX_WEIGHT) допустимо и активно используется в именах констант.
В чём разница между camelCase и PascalCase, и где что использовать?
Это два варианта записи составных имён. В lowerCamelCase первое слово со строчной буквы, остальные — с заглавной: getName, firstName. Так называют методы и переменные. В UpperCamelCase (его также называют PascalCase) с заглавной буквы начинается каждое слово, включая первое: PrintReader, ArrayList. Так называют классы и интерфейсы. Разница только в первой букве, но именно она подсказывает читателю, класс перед ним или переменная.
Почему константы пишут заглавными буквами?
Это соглашение, которое сразу отличает константу от обычной переменной. Если имя записано заглавными буквами со словами через подчёркивание (MAX_WEIGHT, PI), читатель понимает: это значение задано через static final и не изменится во время работы программы. Компилятор такой стиль не требует — код скомпилируется и с обычным именем, — но следование соглашению делает код понятнее.
Можно ли называть переменные русскими буквами?
Технически да: Java использует Unicode, поэтому идентификатор может содержать буквы практически любого языка, включая кириллицу — например, имя или ширинаКнопки. Однако так делать не рекомендуется. Общепринятая практика — называть идентификаторы латиницей и по-английски: так код остаётся понятным для других разработчиков, совместимым с библиотеками и не ломается в разных кодировках и инструментах.
Презентацию с видео можно скачать на Patreon.
Video Explanation
Prefer video format? Watch this lesson with examples and explanations.
Comments