Область видимости в Java
Last updated: 3 мая 2025 г.Немного об области видимости.
1class Test {
2 static int averageOf3Nums(int a, int b, int c) {
3 int sum = a + b + c;
4 int resultAverage = sum / 3;
5 return resultAverage;
6 }
7
8 public static void main(String[] args) {
9 String b = "Some text info!";
10 String c = "Some text info!";
11 if (b.equals(c)) {
12 String d = b + c;
13 }
14 System.out.println(d);
15 }
16}
В примере программы выше можно увидеть, что внутри if была определена String переменная d и после блока if совершается попытка вывести ее содержимое на консоль. Так вот, она недоступна вне блока if.
Этот код не скомпилируется, так как все переменные, которые создаются внутри блока if НЕ ВИДНЫ внешнему блоку, то есть функции main.
Это касается не только if, а и for, switch, else и тому подобное.
Вывод:

Чтобы исправить, это нужно сделать так.
1class Test
2{
3 static int averageOf3Nums(int a, int b, int c) {
4 int sum = a + b + c;
5 int resultAverage = sum / 3;
6 return resultAverage;
7 }
8
9 public static void main(String[] args)
10 {
11 String b = "Some text info!";
12 String c = "Some text info!";
13
14 // Создаем переменную заранее
15 String d = "";
16
17 if (b.equals(c)) {
18 // Записываем результирующую строку
19 // в уже созданную ранее переменную
20 d = b + c;
21 }
22
23 // Выводим ее на консоль
24 System.out.println(d);
25 }
26}
Вывод:

Следующие уроки
Что такое ООП? Класс, объект.
13
мин.
Конструктор класса
9
мин.
Инкапсуляция
13
мин.