Переменная и константа java
Для хранения данных в программе предназначены переменные . Переменная представляет именованную область памяти, которая хранит значение определенного типа. Каждая переменная имеет тип, имя и значение. Тип определяет, какую информацию может хранить переменная или диапазон допустимых значений.
Переменные объявляются следующим образом:
тип_данных имя_переменной;
Например, определим переменную, которая будет называться x и будет иметь тип int :
В этом выражении мы объявляем переменную 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, 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 и константы
Для понимания языка Java, очень важно понимать его синтаксис. Один из его ключевых, фундаментальных кирпичиков — это переменные.
Что такое переменная в Java
Переменная в Java — это контейнер, в котором может храниться некоторое значение данных для дальнейшего использования в программе. По сути переменная — это минимальная неделимая единица Java-приложения. Переменные в Java бывают двух видов: предназначенные для для маленьких данных (примитивные переменные) и для более сложных, тяжёлых (ссылочные переменные). Сегодня мы рассмотрим первый случай, когда переменные хранят именно само значение данных. Такие переменные называют примитивными.
Объявление переменных в Java
Разберем, что мы видим: int — тип переменной, описывающий целые числа, находящиеся в промежутке -2147483648 до 2147483647 x — имя переменной (нам же нужно их отличать между собой, верно?) = знак присваивания какой-то переменной, какого-то значения 9 — её непосредственной значение ; конец данной команды А теперь соберём всё вместе: мы задаём, что переменная типа int , с именем x имеет значение 9 . Данный пример имеет сокращенную форму записи, полная выглядит так:
В первой строке мы видим объявление переменной с присвоением ей имени, то есть этим мы говорим JVM выделить место под переменную int (4 байта) и задать ей имя x . Во второй мы задаём ей значение 9 . До этого у нее было значение, установленное по умолчанию, а именно — 0 . Стоит сказать пару слов об именовании переменных. Как правило они пишутся в нижнем верблюжьем стиле. То есть, например, если у нас есть переменная, описывающая количество людей (count of people), подходящее для неё имя будет:
В этом названии первое слово начинается со строчной (маленькой) буквы, а каждое следующее — с заглавной (большой). Это делается для удобства чтения таких имен, так как обычно имена переменных состоят из более чем одного слова.
Переопределение переменных
Если мы однажды положили в переменную какое-то значение, это не значит, что во время выполнения программы переменная x всегда будет иметь значение 9 . Мы можем её перезаписать:
Всё почти так же, но мы уже не добавляем тип ( int ), ведь он прописан при объявлении переменной (объявлении о её существовании). Далее мы только ее переиспользуем, как к примеру здесь мы видим ее перезапись (задаём нашей переменной новое значение, затирая старое). Предположим, что у нас ещё появилась переменная:
И задав: x = y; Старое значение переменной x будет удалено, перезаписавшись копией значения y , а именно — 7 . Также можно задать значение какой-то другой переменной, увеличенное на нужное нам число:
Так как у нас переменная y была равна 7, в результате x будет равен 12. Более интересна возможность выполнить данные действия:
Что мы здесь видим? Переменной x задается значение, равное прошлому, увеличенному на 6, то есть это будет: 12 + 6 = 18. Эту же запись можно сократить, опустив x :
Виды переменных
Приложение в Java состоит из классов и объектов. Рассмотрим, какими бывают Java переменные:
- переменные объекта;
- локальные переменные;
- переменные класса.
В качестве класса-примера мы возьмем класс собаки с методом “лаять”:
Переменные объекта
Dog dog = new Dog(); dog.value;
Переменные создаются лишь после того, как будет создан объект (то есть после создания объекта с помощью new ). В объекте внутренние переменные всегда видимы для всех методов, конструктора или чего-либо внутри этого же объекта. Как говорилось выше, у переменных объекта существуют значения по умолчанию. Для числа значение по умолчанию — равно 0, для логических (boolean) — false, для ссылок на объект — null.
Локальные переменные
Локальные переменные существуют только в вызванном блоке кода, при окончании которого они удаляются из памяти. Они видимы лишь в пределах объявленного метода, конструктора или блока. То есть использовать переменную, например, в другом методе нельзя. Модификаторы доступа нельзя использовать для локальных переменных. Какой в них смысл, если дальше границ метода переменную не видно? Данный вид переменных создается, когда метод (или конструктор, или блок) вызывается и уничтожается после завершения.
Переменные класса
Данный вид переменных ещё называют статическими. Они объявляются со словом-модификатором static , но за пределами метода, конструктора или блока.
Где Dog — это имя класса, к которому прикреплена переменная. Значение по умолчанию такое же, как и у переменных объекта. Для чисел по умолчанию это 0, для boolean — false; для ссылок на объект — null. Статическая переменная всегда одна, независимо от того, сколько объектов создано из класса, ведь она крепится только к классу. Переменные класса создаются при запуске программы и уничтожаются, когда выполнение программы завершено. Статические переменные в Java часто используются, когда объявляются как константы. О них поговорим подробнее.
Что такое константы в Java
Константа — это заданные, фиксированные значения, которые не должны меняться. А что такое константы в программировании? Это некоторое постоянное значение, которое известно до начала работы приложения, при этом оно задается в коде один раз. В Java константы — это переменные, обозначенные специальным словом — final :
Здесь мы получаем переменную, которую нельзя изменить после задания ей какого-либо значения. Дело в том, что константы гораздо проще, чем переменные. Они всегда однозначно определены и никогда не меняются. Немного выше мы говорили об именовании переменных, и нам стоит уделить внимание и особенностям именования констант. В константных переменных все слова пишутся БОЛЬШИМИ буквами, разделяемыми с помощью знака подчеркивания _ Например, нам нужна константа, описывающая максимальное значение для чего-либо:
Итак, подытожим: Переменная предоставляется нам как место хранения наших данных (или адрес места), что позволяет управлять приложением. У переменных примитивного типа есть определенный формат данных, размер, диапазон значений, которые могут храниться в памяти. Переменные можно разделять по местонахождению: переменные объекта, локальные, класса. Существует особый вид переменных — константы, которые могут быть глобальными, переменными. Их область видимости — вся программа.