Соглашения об именовании переменных в Java? - PullRequest
20 голосов
/ 05 января 2009

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

например:

<?php
$number=123;
$string="a string";
$colors_array=array('red','blue','red');
$Cat=New Cat();
?>

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

Ответы [ 7 ]

59 голосов
/ 05 января 2009

Название можно найти в Соглашениях Java Code .

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

  • Для занятий используйте UpperCamelCase.
  • Для членов класса и локальных переменных используйте lowerCamelCase
  • Для пакетов используйте обратный URI, например, org.acme.project.subsystem
  • Для констант используйте ALL_CAPS.
26 голосов
/ 05 января 2009

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

int count = 32;
double conversionFactor = 1.5d;

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

public static final double KILOGRAM_TO_POUND = 2.20462262;

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

HTMLHandler myHtmlHandler; 

или

HTMLHandler myHTMLHandler.

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

8 голосов
/ 05 января 2009
  • variablesAndMethodsLikeThis
  • ClassesLikeThis
  • CONSTANTS_LIKE_THIS
4 голосов
/ 05 января 2009

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

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

1 голос
/ 03 ноября 2015

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

0 голосов
/ 05 января 2009

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

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

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

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

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

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

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

0 голосов
/ 05 января 2009

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

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

...