Java для автоматизаторов
  • Introduction
  • Java. Введение
    • Java как язык и платформа
    • Установка и настройка
  • Язык Java. Основы
    • Hello World
    • Переменные
    • Типы данных
    • Строки
    • Циклы "while" / "do ... while"
    • Циклы "for"
    • Условный оператор "if / if ... else"
    • Условный оператор "switch"
    • Массивы
    • Задания к главе
  • ООП в Java
    • Классы и объекты
    • Методы
    • Свойства
    • Параметры методов
    • Ключевое слово this
    • Конструктор
    • Модификаторы static и final
    • StringBuffer
    • Метод toString()
    • Метод equals()
    • Наследование
    • Пакеты
    • Интерфейсы
    • Модификаторы Public, Private и Protected
    • Полиморфизм
    • Инкапсуляция
    • Использование обобщений
    • Generics and Wildcards
    • Анонимные классы
    • Исключения
    • Множественные исключения
    • Абстрактные классы
    • Вложенные классы
    • Тип Enum
    • Задания к главе
  • Коллекции
    • ArrayList
    • Linked Lists
    • HashMap
    • Sets (Множества)
    • Sorted Maps
    • Задание порядка в множестве ( natural ordering )
    • Очередь (Queue)
    • Использование итераторов
    • Создание объектов, реализующих интерфейс Iterable
    • Задания к главе
  • Стиль написания кода
    • Структура файла
    • Файлы-исходники
    • Открывающие комментарии
    • Сведения о пакете и импорте
    • Объявление классов и интерфейсов
    • Длина строки
    • Переносы строк
    • Переносы в объявлении методов
    • Переносы в операторе if
    • Переносы в тернарных операциях
    • Виды комментариев
    • Блочные комментарии
    • Однострочные комментарии
    • Комментарии в конце строки
    • Объявления (Декларации)
    • Операторы
    • Пропуски
    • Конвенция именования
    • Задания к главе
  • Работа с файлами
    • Работа с текстовыми файлами
    • Работа с XML файлами
    • Работа с JSON файлами
    • Property-файлы
    • Задания к главе
  • Log4j - система логирования сообщений в Java
    • Начало работы
    • Конфигурационные файлы
    • Стандартные аппендеры
    • Задания к главе
  • Юнит тестирование
    • JUnit vs TestNG. Основные аннотации
    • JUnit vs TestNG. Примеры тестов
      • Exception тесты
      • Ignore тесты
      • Тест с таймаутом
      • Тест сьюты
      • Параметризованные тесты
      • Зависимые тесты
      • Многопоточность
    • Asserts
    • Использование "заглушек" (Mocks)
  • Build инструменты
    • Build инструменты
    • Примеры конфигураций
  • Системы контроля версий. Git
    • Системы контроля версий. Git
    • Git. Установка
    • Git. Основы
    • Git. Основные команды
      • Настройка
      • Работа с репозиторием
      • Работа с удаленным сервером
      • Работа с ветками
Powered by GitBook
On this page
  • Количество на строку
  • Инициализация
  • Расположение
  • Объявление классов и интерфейсов
  1. Стиль написания кода

Объявления (Декларации)

Количество на строку

Рекомендуется размещать одну декларацию на строку, поскольку это располагает к комментированию. Другими словами:

int level; // indentation level
int size;  // size of table

Предпочтительнее, чем

int level, size;

Ни в коем случае не ставьте данные разных типов в одну строку:

int foo,  fooarray[]; //ОЧЕНЬ ПЛОХО!

Примечание: в указанных выше примерах используется один пробел между типом и именем переменной. Еще один допустимый вариант - использовать табуляцию:

int     level;          // indentation level
int     size;            // size of table
Object  currentEntry;    // currently selected table entry

Инициализация

Старайтесь инициализировать локальные переменные там, где они объявляются. Единственной причиной не инициализировать переменную сразу может быть зависимость изначального значения от каких-либо вычислений или условий, предшествующих инициализации

Расположение

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

void myMethod() {
    int int1 = 0;         // beginning of method block

    if (condition) {
        int int2 = 0;     // beginning of "if" block
        ...
    }
}

Единственным исключением из этого правила являются счетчики для циклов, которые можно декларировать прямо в объявлении цикла:

for (int i = 0; i < maxLoops; i++) { ... }

Избегайте локальных деклараций, которые перекрывают декларации на более высоком уровне. Например, не объявляйте одноименной переменной во внутреннем блоке:

int count;
...
myMethod() {
    if (condition) {
        int count = 0;     // ИЗБЕГАТЬ!
        ...
    }
    ...
}

Объявление классов и интерфейсов

При создании классов и интерфейсов необходимо соблюдать следующие правила:

  • Не ставить пробелов между именем метода и скобкой "(", которой начинается список параметров.

  • Открывающая фигурная скобка "{" должна находиться в конце той же строки, в которой находится декларация

  • Закрывающая фигурная скобка "}" стоит в начале строки, на одном уровне с соответствующим открывающим выражением, за исключением случаев пустых выражений, тогда закрывающая скобка "}" ставится сразу за открывающей "{"

class Sample extends Object {
    int ivar1;
    int ivar2;

    Sample(int i, int j) {
        ivar1 = i;
        ivar2 = j;
    }

    int emptyMethod() {}

    ...
}
  • Методы разделяются пустой строкой.

PreviousКомментарии в конце строкиNextОператоры

Last updated 6 years ago