Область видимости в Java
Last updated: 3 мая 2025 г.После изучения функций, условий и циклов стоит поговорить об области видимости переменных — то есть, где переменные “видны” и доступны для использования.
В примере программы ниже можно увидеть, что внутри if была определена строковая переменная d и после блока if совершается попытка вывести ее содержимое на консоль. Однако, она недоступна вне блока if.
Этот код не скомпилируется, так как все переменные, которые создаются внутри блока if НЕ ВИДНЫ внешнему блоку, то есть функции main.
Это касается не только if
, а и for
, switch
, else
и тому подобное.
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
:
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
мин.