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

Константы в Java

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

В PHP константы определяются с помощью нескольких конструкций:

define('Constant1', 100);

// или

const Constant2 = 200;

// или в классе

class Config
{
    const PROJECT_PATH = '/home/example.ru';
}

В Java определение констант несколько более мудрено. Это происходит из того, что Java - язык в полном смысле объектно- ориентированный и строго-типизированный. Поэтому определение констант не может происходить вне класса, как в PHP. Плюс, так как язык Java - строго-типизированный, константы должны иметь строго определенный тип. Вот как это все выглядит в коде:

// файл Config.java
class Config
{
    // общедоступное статическое неизменяемое строковое поле
    public static final String PROJECT_PATH    = "/home/example.ru";

    // общедоступное статическое неизменяемое строковое поле
    public static final double PROJECT_COST  = 125250.50;
    public static final int    PROJECT_VERSION = 0x010;
    
    
    // метод с которого начнется выполнение программы
    public static void main(String[] args)
    {
        System.out.println(Config.PROJECT_PATH);
        System.out.println(Config.PROJECT_COST);
        System.out.println(Config.PROJECT_VERSION);
    }
}

Теперь посмотрим, что тут у нас в коде. В первую очередь нас интересует строка

public static final String PROJECT_PATH = "/home/example.ru";

Модификатор public означает, что поле PROJECT_PATH доступно и может вызываться внешним кодом через оператор точку следующим образом

// Config имя класса, PROJECT_PATH имя константы.
Config.PROJECT_PATH

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

И самый главный модификатор здесь - это final. Данный модификатор по сути и определяет константу в Java. С помощью данного модификатора мы говорим, что нам нужно значение, которое не может быть изменено в ходе выполнения программы. Фактически final в данном случае - это аналог const из PHP.

Вот таким образом, определяются константы в Java.