Что такое константа в java
Перейти к содержимому

Что такое константа в java

  • автор:

Что такое константа в java

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

Переменные объявляются следующим образом:

тип_данных имя_переменной;

Например, определим переменную, которая будет называться x и будет иметь тип int :

int x;

В этом выражении мы объявляем переменную x типа int . То есть x будет хранить некоторое число не больше 4 байт.

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

  • имя может содержать любые алфавитно-цифровые символы, а также знак подчеркивания, при этом первый символ в имени не должен быть цифрой
  • в имени не должно быть знаков пунктуации и пробелов
  • имя не может быть ключевым словом языка Java

Кроме того, при объявлении и последующем использовании надо учитывать, что Java — регистрозависимый язык, поэтому следующие объявления int num; и int NUM; будут представлять две разных переменных.

Объявив переменную, мы можем присвоить ей значение:

int x; // объявление переменной x = 10; // присвоение значения System.out.println(x); // 10

Также можно присвоить значение переменной при ее объявлении. Этот процесс называется инициализацией :

int x = 10; // объявление и инициализация переменной System.out.println(x); // 10

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

int x; System.out.println(x);

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

int x, y; x = 10; y = 25; System.out.println(x); // 10 System.out.println(y); // 25

Также можно их сразу инициализировать:

int x = 8, y = 15; System.out.println(x); // 8 System.out.println(y); // 15

Отличительной особенностью переменных является то, что мы можем в процессе работы программы изменять их значение:

int x = 10; System.out.println(x); // 10 x = 25; System.out.println(x); // 25

Ключевое слово var

Начиная с Java 10 в язык было добавлено ключевое слово var , которое также позволяет определять переменную:

var x = 10; System.out.println(x); // 10

Слово var ставится вместо типа данных, а сам тип переменной выводится из того значения, которое ей присваивается. Например, переменной x присваивается число 10, значит, переменная будет представлять тип int.

Но если переменная объявляется с помощью var, то мы обязательно должны инициализировать ее, то есть предоставить ей начальное значение, иначе мы получим ошибку, как, например, в следующем случае:

var x; // ! Ошибка, переменная не инициализирована x = 10;

Константы

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

final int LIMIT = 5; System.out.println(LIMIT); // 5 // LIMIT=57; // так мы уже не можем написать, так как LIMIT - константа

Как правило, константы имеют имена в верхнем регистре.

Константы позволяют задать такие переменные, которые не должны больше изменяться. Например, если у нас есть переменная для хранения числа pi, то мы можем объявить ее константой, так как ее значение постоянно.

Константы в Java

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

Почему это удобно:

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

По логике это надо бы называть «постоянной» — в противоположность переменной, — но традиция уже сложилась.

Константа может хранить число, строку, символ, ссылку на объект и др. Значение константы еще называют литералом (от англ. literal — буквальный), потому что его записывают как есть — без предварительных вычислений.

При объявлении констант в Java используют ключевое слово final — оно показывает, что литерал не должен меняться. Именовать константы принято заглавными буквами со знаком подчеркивания вместо пробела: ВОТ_ТАК.

Пример строковой константы:

public static final String MY_CONSTANT="Мой текст"; //создаем строку и присваиваем ей постоянное значение 

Модификаторы public и static означают, что перед нами публичная константа уровня класса — без привязки к отдельным объектам, классам и т.д. Это аналог глобальной константы в Java. Значение константы всегда указывают при её создании. Если инициализация отложена, перед нами не константа, а «финальная переменная». Её значение тоже обычно задают только один раз, но:

  • оно может быть получено в результате вычислений;
  • если внутри финальной переменной лежит объект, его свойства можно менять, т.к. финализация действует на ссылку, а не на значение.

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

Неименованные константы в Java

Неименованная константа — постоянное произвольное значение, которое вносят в код однократно:

if (i  5 ) // 5 - это константа; 

Если значение нужно использовать ещё где-то, лучше вынести его в именованную константу или финальную переменную.

Константы встроенных классов Java

Класс Integer в Джаве отвечает за обработку целых чисел типа int. Ограничителями диапазона значений int служат константы MIN_VALUE (минимальное значение) и MAX_VALUE (максимальное). Константы с теми же именами существуют и в остальных классах для обработки числовых данных: byte, long, float, double. При создании объекта нужного типа классы обращаются к пулам — массивам констант Java, где хранятся допустимые элементы диапазона.

Где хранить константы

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

Java: Константы

Некоторые данные никогда не меняются — например, математические постоянные. Возьмем число π. Приближенно оно всегда равно 3.14 и не может измениться.

Для обращения к подобным данным в Java принято использовать константы:

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

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

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

Задание

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

Упражнение не проходит проверку — что делать? ��

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

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

В моей среде код работает, а здесь нет ��

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

Мой код отличается от решения учителя ��

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

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

Прочитал урок — ничего не понятно ��

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

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

Константы в Java

Наверняка Вы помните еще со школы, что есть такое понятие, как «константы», то есть фиксированные значения, которые не должны меняться. Например, число пи — это константа. Так вот достаточно часто при написании программ, необходимо использовать константу.

Как сделать переменную константой?

1. Для того, чтобы переменную сделать константой, необходимо использовать ключевое слово final.

2. Константы в программе принято писать большими буквами , чтобы отличать их от обычных переменных.

3. Если в программе происходит попытка изменить константу, компилятор javac выдаст сообщение об ошибке. Потому что значение константы Вы можете задать только 1 раз.

Давайте рассмотрим на практике.

Задача:

Вычислить периметр круга при разных значениях радиуса:

Решение:

Периметр круга вычисляется по формуле: P= 2πR

P — Периметр круга (длина окружности)

π — число пи (3.1415)

R — радиус круга (окружности)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *