MyTetra Share
Делитесь знаниями!
Константы в Java
Время создания: 12.07.2018 15:53
Текстовые метки: java constanst
Раздел: Java
Запись: Velonski/mytetra-database/master/base/1531392796znkawobabj/text.html на raw.githubusercontent.com

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


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


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

Вместо длинного значения можно ставить в коде короткое имя константы.

Нет риска ошибиться при очередном вводе значения.

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


Константа может хранить число, строку, символ, ссылку на объект и др. Значение константы еще называют литералом (от англ. 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, где хранятся допустимые элементы диапазона.


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

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

 
MyTetra Share v.0.59
Яндекс индекс цитирования