Переменные соглашения об именах в Java?

В PHP мы (по крайней мере, хорошие программисты) всегда начинаем имена общих переменных с строчной буквы, но переменные classа / объекты с буквой верхнего регистра, чтобы отличить их. Таким же образом мы запускаем общие имена файлов с буквой в нижнем регистре, но файлы, содержащие classы с буквой верхнего регистра.

Например:

 

Являются ли соглашения одинаковыми в java, т.е. объекты, начинающиеся с верхнего регистра, а остальные с нижним регистром, или все начинается с нижнего регистра, как я читал в других местах?

Как правило, все переменные начинаются с нижнего регистра:

 int count = 32; double conversionFactor = 1.5d; 

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

 public static final double KILOGRAM_TO_POUND = 2.20462262; 

Вещи становятся более раздражающими, когда вы имеете дело с акронимами, и нет реального стандарта о том, следует ли вам использовать:

 HTMLHandler myHtmlHandler; 

или

 HTMLHandler myHTMLHandler. 

Теперь, в любом случае, обратите внимание, что имена classов (Object, String, HTMLHandler) всегда начинаются с заглавной буквы, но отдельные переменные объекта начинаются в нижнем регистре.

Вы можете найти именование в соглашениях Java Code .

Краткое резюме:

  • Для classов используйте UpperCamelCase .
  • Для членов classа и локальных переменных используйте lowerCamelCase
  • Для пакетов используйте обратный URI, например, org.acme.project.subsystem
  • Для констант используйте ALL_CAPS .
  • variablesAndMethodsLikeThis
  • ClassesLikeThis
  • CONSTANTS_LIKE_THIS

Соглашением является то, что имена classов начинаются с буквы верхнего регистра. Имена переменных – camelCase. Даже если переменная ссылается на объект, она все равно начинается с нижнего регистра.

Эта страница должна помочь.

Что вы думаете об использовании методов camelCase для экземпляров и PascalCase для статического? Я думаю, что это может быть очень полезно, потому что не было никаких проблем при проверке того, какой метод статичен. Это мое предложение

Соглашения действительно зависят от того, в каком месте вы кодируете.

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

Некоторые люди (кто не я) любят дифференцировать переменные метода из переменных экземпляра, префиксные переменные экземпляра с «этим». Это также устраняет проблему, возникающую при назначении параметра переменной экземпляра с тем же именем:

 public ConstructorMethod(MyVar variable) { this.variable=variable; } 

Но тогда некоторые люди считают, что вы всегда должны использовать этот образец, но я не сумасшедший – я думаю, что это слишком сложно, если вы не будете поддерживать свои методы и classы небольшими.

Кроме того, некоторые люди используют шаблон именования для параметров. Это (снова) полезно, когда вы назначаете из конструктора переменную Instance:

 public ConstructorMethod(MyVar pVariable) { variable=pVariable; } 

Обычно шаблон имеет pVariable или _variable . Я иногда использую это, потому что считаю его более читаемым, но это имеет недостаток, заключающийся в том, что ваши Javadocs менее читаемы.

В любом случае мне не очень нравится идея ВСЕГДА использовать любой из этих шаблонов, они замечательны, но если вам действительно нужна помощь, дифференцируя их по всему вашему коду, скажите Eclipse, чтобы показать их в разных цветах.

Interesting Posts

Синтетический class в Java

Существует ли неатомный эквивалент std :: shared_ptr? А почему нет в памяти ?

DSIM не работает. Работал один раз, но SFC терпел неудачу. Теперь DSIM не работает при восстановлении

Драйвер не смог установить безопасное соединение с SQL Server с использованием шифрования Secure Sockets Layer (SSL)

Как отключить масштабирование колесика мыши с помощью API Карт Google

Как отключить защиту от записи на USB-накопителе?

На месте редактирования с sed на OS X

Asp.net 4.0 не зарегистрирован

Экспорт CSS элементов DOM

Win 8.1 shutdown задерживает ровно 5 минут без каких-либо журналов

MSBuild не копирует ссылки (файлы DLL) при использовании зависимостей проекта в решении

Spring MVC: разница между тегами и ?

Раздел конфигурации «system.web.extensions» не может быть прочитан, потому что отсутствует объявление раздела

Использование обратных ссылок вокруг имен полей

Увеличение и уменьшение масштаба изображения в Android

Давайте будем гением компьютера.