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

Комментарий в одном из других ответов упоминал режим cbreak, который важен для реализаций Unix, потому что вы, как правило, не хотите, чтобы ^ C (KeyboardError) потреблялся getchar (как и при установке терминала на raw mode, как это сделано большинством других ответов).

Еще одна важная деталь: если вы хотите прочитать один символ , а не один байт , вы должны прочитать 4 байта из входного потока, так как это максимальное количество байтов, которое будет содержать один символ в UTF-8 (Python 3+). Чтение только одного байта приведет к неожиданным результатам для многобайтовых символов, таких как стрелки клавиатуры.

Вот моя измененная реализация для Unix:

import contextlib
import os
import sys
import termios
import tty


_MAX_CHARACTER_BYTE_LENGTH = 4


@contextlib.contextmanager
def _tty_reset(file_descriptor):
    """
    A context manager that saves the tty flags of a file descriptor upon
    entering and restores them upon exiting.
    """
    old_settings = termios.tcgetattr(file_descriptor)
    try:
        yield
    finally:
        termios.tcsetattr(file_descriptor, termios.TCSADRAIN, old_settings)


def get_character(file=sys.stdin):
    """
    Read a single character from the given input stream (defaults to sys.stdin).
    """
    file_descriptor = file.fileno()
    with _tty_reset(file_descriptor):
        tty.setcbreak(file_descriptor)
        return os.read(file_descriptor, _MAX_CHARACTER_BYTE_LENGTH)
20
задан Click Upvote 5 January 2009 в 18:15
поделиться

6 ответов

Обычно все переменные запустятся с нижнего регистра:

int count = 32;
double conversionFactor = 1.5d;

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

public static final double KILOGRAM_TO_POUND = 2.20462262;

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

HTMLHandler myHtmlHandler; 

или

HTMLHandler myHTMLHandler.

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

27
ответ дан Richard Campbell 5 January 2009 в 18:15
поделиться

Можно найти именование в Конвенции .

Кода Java

А быстрая сводка:

  • Для классов, используйте UpperCamelCase.
  • Для использования участников и локальных переменных класса lowerCamelCase
  • Для пакетов, используйте обратный URI, например, org.acme.project.subsystem
  • Для констант, используйте ALL_CAPS.
59
ответ дан fguillen 5 January 2009 в 18:15
поделиться
  • 1
    после того, как я называю его, куда поместить сценарии, которому нужен jQuery для выполнения? – Ashkan Mobayen Khiabani 26 September 2013 в 22:23

Конвенция состоит в том, что имена классов запускаются с Прописной буквы. Имена переменной являются Camel-регистром. Даже если ссылки на переменную объект это все еще запускается с нижнего регистра.

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

4
ответ дан Vincent Ramdhanie 5 January 2009 в 18:15
поделиться

Некоторым людям (кто не я) нравится дифференцировать переменные Метода от Переменных экземпляра путем добавления префикса Переменных экземпляра "это". Это также решает проблему, которая происходит при присвоении параметра Переменной экземпляра того же имени:

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

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

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

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

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

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

0
ответ дан zx485 5 January 2009 в 18:15
поделиться
  • 1
    Этим решением могло бы быть излишество, можно уничтожить производительность браузера для получения лучшей производительности на аналитике Google. Isn' t это отсутствие здравого смысла? CDNs с общими библиотеками + один уменьшенный пользовательский JavaScript должен быть достаточно, по моему скромному мнению. – Drachenfels 26 September 2013 в 22:27

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

В целом, от того, что я видел, классами является CamelCased (с верхним регистром сначала), методы запускаются с нижнего регистра и переменных, которые я видел повсеместно (некоторый CamelCased, некоторый Camel-регистр с первой буквой ниже (РЕДАКТИРОВАНИЕ: как упомянуто выше, это - норма), некоторые даже с венгерской записью). Это зависит от Вашего стиля и стиля, который принял проект, Вы продолжаете работать.

0
ответ дан EdgarVerona 5 January 2009 в 18:15
поделиться
  • 1
    I' m использующий этот метод, я can' t находят любую альтернативу в данный момент – Irvin Dominin 26 September 2013 в 22:19
  • variablesAndMethodsLikeThis
  • ClassesLikeThis
  • CONSTANTS_LIKE_THIS
8
ответ дан Patrick McElhaney 5 January 2009 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: