Java: Константы

Иногда в программе встречаются значения, которые никогда не должны меняться. Например:

  • Математическая константа π (пи).
  • Курс доллара на определенную дату.
  • Фиксированная комиссия сервиса.

Такие значения называются константами, и их принято отличать от обычных переменных, чтобы не возникало желания их менять.

Пример: число π

Возьмем число π. Приближенно оно всегда равно 3.14 и не может измениться:

final var pi = 3.14;
System.out.println(pi); // => 3.14

Здесь pi будет константой, которая хранит значение числа π. Смысл константы в том, что ее значение не меняется в ходе работы программы.

Чем константа отличается от переменной

Концепт констант распространен в большинстве языков программирования. В Java перед определением константы ставят ключевое слово final. Оно сообщает компилятору запрет на изменение. Любая попытка поменять константу приведет к ошибке:

final var pi = 3.14;
pi = 3.14159;
// Error:
// cannot assign a value to final variable pi
// нельзя присвоить значение константе pi

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

Как оформляются константы

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

Когда константа описана на уровне всего класса и доступна всей программе, в Java принят особый стиль написания имени:

  • Все буквы заглавные
  • Слова разделяются символом подчеркивания _
  • Стиль называется UPPER_SNAKE_CASE (еще его называют SCREAMING_SNAKE_CASE)

Такие константы обычно объявляют с static final:

static final double PI = 3.14;
static final int MAX_USERS = 100;
static final int DEFAULT_TIMEOUT = 30;

По имени сразу видно, что перед нами константа, а не обычная переменная. Заглавные буквы выделяют ее в коде.

Зачем нужны константы

Константы делают код понятнее и безопаснее. Они помогают сразу увидеть, какие значения в программе считаются фиксированными и не должны меняться. Это особенно важно при работе с математическими и физическими постоянными, настройками по умолчанию или фиксированными лимитами.

Использование констант снижает риск ошибок. По ключевому слову final компилятор не даст случайно изменить значение. Кроме того, если значение все же нужно поменять, например в настройках, достаточно поправить его в одном месте, и изменение подхватится во всей программе.

Задание

Создайте константу dragonsBornCount и запишите в неё число 3 — это количество драконов, родившихся у Дайенерис. Выведите значение константы на экран.

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются