Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvPmScNC 294 of 420 menu
◀ ▶

Одинаковые имена переменных в Java

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

Повторное объявление num внутри if при уже существующем num в методе дает ошибку компиляции:

int num = 1; if (true) { int num = 2; // программа не собирается System.out.println(num); } System.out.println(num);

Зато локальное имя в методе может скрывать статическое поле класса с тем же именем. Из main на экран попадет 10, из show - 20:

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

Пока действует локальная переменная, к полю с тем же именем из этого места не обратиться. После выхода из метода снова используется поле. На экран попадут 100 и 5:

public class Main { static int score = 5; static void bump() { int score = 100; System.out.println(score); } public static void main(String[] args) { bump(); System.out.println(score); } }

Дан код:

String tag = "a"; if (true) { String tag = "b"; System.out.println(tag); } System.out.println(tag);

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

Дан код:

public class Main { static int level = 1; public static void main(String[] args) { int level = 2; System.out.println(level); } }

Определите, что выведет программа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить