Использование подчеркивания в именах переменных и методов

Я запутался в соглашении (именовании) использования символа underscore _ в именах переменных и имени методов в качестве их стартовой буквы. Например _sampleVariable и _getUserContext(). Может ли кто-нибудь уточнить, когда его использовать?

Ответ 1

См. Java Именованные контравы

За исключением переменных, все константы экземпляра, класса и класса находятся в смешанном случае с строчной первой буквой. Внутренние слова начинаются с заглавных букв. Имена переменных не должны начинаться с символов подчеркивания _ или знаков доллара $, даже если оба разрешены.

Имена переменных, объявленных константами класса и констант ANSI, должны быть прописными буквами со словами, разделенными символами подчеркивания ( "_" ). (Для облегчения отладки следует избегать констант ANSI).

Ответ 2

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

Ответ 3

Обычно не следует использовать, кроме как разделитель во всех прописных константах, которые обычно являются окончательными (allStars, но ALL_STARS).

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

Ответ 4

Обычно _ используется в переменной, чтобы представлять их как частные переменные уровня класса.

Ответ 5

Цитирование книги "Чистый код" Роберта К. Мартина,

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

Пример

// Don't run unless you
// have some time to kill.
public void _testWithReallyBigFile() {
writeLinesToFile(10000000);
response.setBody(testFile);
response.readyToSend(this);
String responseString = output.toString(); assertSubString("Content-Length: 1000000000", responseString); assertTrue(bytesSent > 1000000000);
}

В настоящее время, конечно, wed отключает тестовый пример, используя атрибут @Ignore с соответствующей пояснительной строкой. @Ignore ( "Слишком много времени для запуска" ). Но еще во времена, предшествовавшие JUnit 4, подчеркивание перед именем метода было общим соглашением.