Читать книгу Java за неделю. Вводный курс - Валерий Станиславович Яценков - Страница 5
Часть I. Теория
Глава 2. Подготовка к работе с Java
2.2 Соглашение об именах
ОглавлениеПрежде, чем приступить к созданию первого проекта, сделаем небольшое отступление и перечислим основные правила составления имен в языке Java. Обязательно ли нужно выполнять эти правила? Если на званом ужине вы будете вытирать руки о скатерть, то вас не прогонят из-за стола. Но второй раз не пригласят. С выполнением общепринятых соглашений в программировании похожая ситуация. Отклонение от правил именования в большинстве случаев не вызовет ошибку компиляции, но затруднит понимание исходного кода другими программистами. Более того, даже вам будет трудно разрабатывать и отлаживать собственный код, обращаясь к чужим примерам с корректно заданными именами. Надо с первых шагов приучить себя к строгому соблюдению как формальных, так и неписаных правил программирования. Работоспособность приложения – не единственный критерий качества кода.
Язык Java регистрозависимый. Например, filesize и fileSize – разные имена. Тем не менее, лучше избегать использования имен, которые различаются лишь регистром символов, чтобы не затруднять понимание и отладку программы. Обычно «горбатый регистр» (Camel casing) применяется для выделения первых букв слова в составном имени, например, MyFirstClass.
Итак, вот пункты соглашения об именах Java (в скобках приведены примеры):
Пакеты и подпакеты – существительные в единственном числе, только в нижнем регистре, в составных именах слова разделяются подчеркиванием (input_control).
Классы и интерфейсы – существительные или словосочетания в значении существительного. Первые буквы слов в верхнем регистре, слова не разделяются (UserInfo). Имена классов—исключений заканчиваются словом Exception (InvalidCountException).
Классы—наследники – рекомендуется использовать имена, в которых содержится имя родительского класса (LocalConnect extends Connect). Исключение составляют имена классов—наследников, из которых очевидно, что они наследуют суперкласс (Oval extends Figures).
Поля и локальные переменные – существительные в нижнем регистре (size). Если название составное, то следующие слова начинаются с заглавной буквы, разделители не используются (imageHeight). Имена переменных должны соответствовать типу хранимых данных. Например, имя переменной currentUser интуитивно соответствует номеру пользователя (целое число). Для хранения имени пользователя (строка) лучше использовать переменную с именем currentUserName.
Переменные типа static final – существительные или словосочетания в верхнем регистре, слова разделены подчеркиваниями (MAIN_COLOUR).
Методы – глаголы в нижнем регистре (calculate) или словосочетания, отражающие действие (printAmount). Глаголы должны максимально полно и точно описывать действие, которое выполняет метод.
Имена методов, выполняющих чтение или изменение значений полей класса, должны начинаться на get и set соответственно (getFileSize, setFontColour). Исключение составляют методы, возвращающие значения полей типа boolean. Их имена должны начинаться на is (isFileOpen).
Имена методов, выполняющих преобразование к другому типу данных, начинаются на to (toString).
Имена методов, которые создают и возвращают объект, начинаются с create (createDataset).
Имена методов, инициализирующих поля класса или элементы графического интерфейса, начинаются с init (initWindow) и применяются только в конструкторе класса.
2.2.1 Зарезервированные слова и литералы
В таблице 2.1 приведены ключевые слова, зарезервированные для синтаксических конструкций языка Java. Они не могут быть именами переменных, классов и т.п., их нельзя переопределять.