В мире программирования термин область действия относится к области программы, в которой доступны определенные данные. В языках программирования переменные и методы должны иметь понятное имя, и оно также должно быть уникальным, однако в то же время вы должны поддерживать уникальное, понятное и лаконичное имя, что может быть немного сложно. если программа очень длинная.
Поэтому языки программирования предлагают концепцию области действия, которая говорит, что не все переменные/методы существуют везде в программе, вместо этого эти переменные и методы будут доступны в той области, где они созданы.
Область действия переменной в Java
Он определяет, будет ли переменная доступна во всей программе, в методе или она будет доступна и в других классах. Проще говоря, область действия переменных определяет, что переменные доступны только в той области, где они созданы.
Пример
Приведенный ниже фрагмент обеспечит лучшее понимание области действия переменных.
publicclassMethodScope {
publicstaticvoidmain(String[] args) {
// the variable «name» can’t be used hereString name = «John»;
// hereafter «name» can be used anywhere in the method
System.out.println (name);
}
}
Давайте рассмотрим пример, чтобы проверить, что будет на выходе, если мы попытаемся получить доступ к переменной до ее объявления:
Приведенный выше фрагмент подтверждает, что переменная до ее объявления недоступна.
Область видимости на уровне класса в Java
К переменным, объявленным внутри класса, могут обращаться все функции этого класса в зависимости от его модификатора/спецификатора доступа, т. е. общедоступных, частных и т. д. В некоторых случаях (т. е. в модификаторах общедоступного доступа и с использованием объектов этого конкретного класса) получать доступ и вызывать переменные и методы вне класса.
Пример
Для глубокого понимания концепций рассмотрите приведенный ниже фрагмент кода:
packagejavascope;
classClassExample1{
public String var1;
privateint var2;publicvoidfunction1(String var1, int var2) {
// var1, var2 can be accessed here
System.out.println(«function1»);
}privatevoidfunction2(int var3) {
// var1, var2 can be accessed here
System.out.println(«function2»);
}
}publicclassMainClass{
publicstaticvoidmain(String[]args) {
ClassExample1 obj = new ClassExample1();
// public variables can be accessed in this class
// public methods/functions can be called from here
function1(«Scope», 5);
String name = obj.var1;
// private variables can be accessed in this class
int id= obj.var2; //Throws an error, can’t access private variables of other class here
// private methods/functions can’t be called from here
obj.function2(4);
}
}
Полный фрагмент кода будет выглядеть так:
Из приведенного выше фрагмента мы увидели, что к общедоступным переменным и методам можно получить доступ и вызвать их в других классах, а также с помощью объекта класса. Однако мы не можем получить доступ к закрытым переменным одного класса для другого класса даже с помощью объекта класса.
Область действия на уровне метода в Java
Переменная, объявленная/созданная в методе, будет доступна в любом месте этого метода после ее объявления, однако она не будет доступна до ее объявления. Более того, доступ к переменной одного метода внутри другого метода невозможен, а если говорить конкретно о методах, то мы можем вызывать один метод и внутри других методов.
Приведенный ниже фрагмент поможет лучше понять область действия метода в Java:
Пример
Давайте рассмотрим приведенный ниже снимок экрана для более глубокого понимания области действия на уровне метода:
Из приведенного выше фрагмента ясно, что мы не можем получить доступ к переменной одного метода внутри других методов, однако мы можем вызвать метод из других методов.
Область видимости на уровне блоков в Java
Все, что заключено в фигурные скобки {}, называется областью действия блока, и переменные, созданные в блоке кода, будут доступны коду, находящемуся между фигурными скобками. Переменные, объявленные в области блока, не будут доступны за пределами области блока.
Пример
В этом примере мы создаем две переменные, имеющие область видимости на уровне метода, и инициализируем их некоторыми значениями:
publicstaticvoidmain(String[] args) {
String name = «John»;
{
int id = 0;
for (inti = 0; i<= 5; i++) {
id++;
if (id == 4) {
System.out.println(«id: « + id);
System.out.println(«name: « + name);
}}
}
}
}
Мы используем цикл for, который повторяется пять раз и печатает имя, когда «id = 4». Фрагмент ниже даст полное представление о области действия, а также отобразит вывод:
Фрагмент проверяет, что он успешно обращается к обеим переменным, то есть имени, идентификатору.
Переменные, созданные на уровне блока, не будут доступны до начала или после окончания области действия блока, как показано на приведенном ниже снимке экрана:
Приведенный выше фрагмент кода подтверждает, что ошибка возникает, когда мы пытаемся получить доступ к переменной блочного уровня за пределами области блока.
Заключение
Переменная, объявленная в области действия метода, будет доступна только внутри метода, а переменная, объявленная в области действия блока, будет доступна в области действия блока. Мы не можем получить доступ к переменной до ее объявления, а доступ к переменным за пределами области видимости приведет к ошибке. Эта статья представляет собой исчерпывающее руководство по области действия переменных и методов в Java.