Рубрики
Без рубрики

ЭТО_ИС_А_КОНСТАНТ

Младший инженер задал отличный вопрос, когда мы соединялись ” Почему эта переменная должна быть в… Помеченный c, java, история.

Младший инженер задал отличный вопрос, когда мы соединялись

“Почему эта переменная должна быть в верхнем регистре?”

Ну, потому что это статический финал, конечно.

Но почему?

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

Таким образом, очевидное различие заключается в том, что, поскольку оно является окончательным, его нельзя изменить после его инициализации. И это статично, что означает, что это свойство класса, а не этого экземпляра.

Это настолько близко, насколько это возможно на Java, к const на других языках.

Но, спросил он, почему это означает, что мы должны сделать его заглавным с подчеркиванием? Разве компилятор не сообщит нам, когда вы попытаетесь его изменить?

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

Но что же такого особенного было в Си?

Так что на самом деле в C тоже какое-то время не существовало понятия неизменяемого. НО у нас действительно была директива #define. Это сообщило компилятору, что следующее, что он увидит в строке, будет символом, который будет заменен точно на то, что будет после этого.

Таким образом, вы увидите что-то вроде: #define STR "моя строка"

Когда компилятор видел STR, он буквально заменял этот символ на “my string”, когда обрабатывал этот файл.

Было важно знать, что вы имеете дело с чем-то особенным, с чем-то, что может сломаться ДЕЙСТВИТЕЛЬНО странным образом! Кто-нибудь помнит старое ожидаемое “конец файла, когда “;”, но это ПРЯМО ЗДЕСЬ!”?

Итак, мы здесь, в 2020 году, пишем переменные Java с другим регистром, потому что это выглядит как константа, потому что мы должны знать, как относиться к ней по-другому, почти с почтением, из-за уроков, извлеченных на другом языке.

Оригинал: “https://dev.to/dnnrly/thisisaconstant-3e2o”