Переменные в Java
Разберём, как объявлять переменные в Java, какие бывают области видимости, что такое константы и как Java выводит тип через var.
Переменная — это именованная ячейка памяти с указанным типом. Имя позволяет обращаться к значению, а тип — определяет, что в этой ячейке можно хранить.
Объявление и инициализация
Объявление переменной в Java состоит из типа, имени и, по желанию, начального значения:
int age = 25; // объявление + инициализация сразу
String city; // только объявление
city = "Казань"; // инициализация позже
System.out.println(age);
System.out.println(city);
Вывод:
25 Казань
Локальную переменную нельзя использовать, пока ей не присвоено значение. Компилятор не пропустит чтение неинициализированной переменной — это защищает от случайных ошибок.
Правила именования
- Имя состоит из букв, цифр,
_и$, но не может начинаться с цифры. - Java чувствительна к регистру:
countиCount— разные переменные. - По соглашению имена переменных пишут в стиле camelCase:
userName,totalPrice. - Нельзя использовать зарезервированные слова (
int,class,newи т. д.).
int totalScore = 0; // хорошо: понятное имя в camelCase
int t = 0; // плохо: ничего не говорит о смысле
int 2cool = 0; // ошибка: имя начинается с цифры
Константы: final
Если значение не должно меняться после присваивания, переменную помечают ключевым словом final. Попытка изменить такую переменную — ошибка компиляции. Имена констант принято писать заглавными буквами.
final double PI = 3.14159;
final int MAX_USERS = 100;
System.out.println(PI);
// PI = 3.14; // ← такая строка не скомпилируется
Вывод:
3.14159
Область видимости
Переменная «живёт» внутри блока { }, где она объявлена, и недоступна снаружи. Это называют областью видимости (scope).
public class Main {
public static void main(String[] args) {
int x = 10; // видна во всём методе main
if (x > 5) {
int y = 20; // видна только внутри if
System.out.println(x + y);
}
// System.out.println(y); // ошибка: y здесь уже не существует
}
}
Вывод:
30
Вывод типа через var
Для локальных переменных с Java 10 можно писать var вместо типа — компилятор определит тип по значению. Переменная остаётся строго типизированной, просто тип не дублируется в коде.
var name = "Анна"; // тип String
var year = 2024; // тип int
var ratio = 0.75; // тип double
System.out.println(name + ", " + year);
Вывод:
Анна, 2024
varработает только для локальных переменных с инициализацией. Для полей класса, параметров методов и без начального значения его использовать нельзя.
Коротко
- Переменная = тип + имя + значение; локальную нельзя читать до инициализации.
- Имена — в camelCase, регистр важен, зарезервированные слова запрещены.
finalделает переменную константой.- Область видимости ограничена блоком
{ };varвыводит тип автоматически.