0Pricing
Java Academy · Урок

Использование var для локальных переменных

Позвольте компилятору вывести тип

«Использование var для локальных переменных» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.

Вывод типов локальных переменных

Начиная с Java 10 Вы можете объявлять локальные переменные с помощью var и позволять компилятору выводить тип из инициализатора. Это называется выводом типов локальных переменных. Переменная по-прежнему имеет строгую типизацию.

Ваша первая переменная var

Заменяйте явный тип на var при присваивании значения. Компилятор видит литерал и выводит подходящий тип.

public class Main {
    public static void main(String[] args) {
        var message = "Hello";
        var count = 42;
        System.out.println(message + " " + count);
    }
}

var — это не динамическая типизация

var не делает Java динамически типизированным языком. После вывода тип фиксируется. Последующее присваивание значения другого типа приведёт к ошибке компиляции.

public class Main {
    public static void main(String[] args) {
        var n = 10;
        n = 20;
        System.out.println(n);
    }
}

Вывод типов объектов

var работает и с объектами. Выведенный тип — это тип, который возвращает выражение-инициализатор.

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        var list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        System.out.println(list);
    }
}

Меньше повторений

Длинные обобщённые типы больше не нужно записывать дважды. var убирает избыточное указание типа в левой части.

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        var scores = new HashMap<String, Integer>();
        scores.put("Alice", 90);
        System.out.println(scores);
    }
}

Вывод типа из возвращаемого значения метода

Когда метод возвращает значение, var автоматически получает объявленный тип возвращаемого значения.

public class Main {
    static String greet() {
        return "Hi there";
    }
    public static void main(String[] args) {
        var g = greet();
        System.out.println(g.toUpperCase());
    }
}

var и примитивные типы

Для целочисленного литерала выводится int, а для десятичного — double. Обращайте внимание на то, какой примитивный тип получается.

public class Main {
    public static void main(String[] args) {
        var i = 5;
        var d = 5.0;
        var b = true;
        System.out.println(i + " " + d + " " + b);
    }
}

Проверка во время компиляции сохраняется

Поскольку тип известен во время компиляции, компилятор по-прежнему обнаруживает ошибки типов. Вызов метода String для выведенного типа int приведёт к ошибке компиляции.

public class Main {
    public static void main(String[] args) {
        var name = "Coddy";
        System.out.println(name.length());
    }
}

Необходима немедленная инициализация

Объявление с var требует инициализатора в той же строке. Компилятору нужно значение, из которого он сможет вывести тип.

public class Main {
    public static void main(String[] args) {
        var total = 0;
        for (int i = 1; i <= 5; i++) {
            total += i;
        }
        System.out.println(total);
    }
}

Работа с массивами

Вы можете вывести тип массива, если инициализатор однозначно задаёт тип его элементов.

public class Main {
    public static void main(String[] args) {
        var numbers = new int[]{1, 2, 3, 4};
        var sum = 0;
        for (var n : numbers) {
            sum += n;
        }
        System.out.println(sum);
    }
}

Практический пример

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

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var fruits = List.of("apple", "banana", "cherry");
        for (var fruit : fruits) {
            System.out.println(fruit.toUpperCase());
        }
    }
}

Быстрая проверка

Как лучше всего описать работу var в Java?

Повторение

Вы научились использовать var для локальных переменных:

  • Компилятор выводит тип из инициализатора
  • Переменная по-прежнему имеет строгую статическую типизацию
  • Инициализатор обязателен в той же строке
  • Это уменьшает повторения при работе с длинными обобщёнными типами
  • Поддерживаются примитивные типы, объекты и массивы

Часто задаваемые вопросы

Урок «Использование var для локальных переменных» бесплатный?

Да — полный текст урока «Использование var для локальных переменных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.

Чему я научусь в уроке «Использование var для локальных переменных»?

Позвольте компилятору вывести тип Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Использование var для локальных переменных»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Использование var для локальных переменных
  2. Когда var повышает читаемость
  3. var в циклах for
  4. Ограничения var
← Назад к Java Academy