Статическая переменная в Java
- Статические переменные
- Статические методы
- Статические блоки кода.
Давайте сначала рассмотрим статические переменные и статические методы.
Что такое статическая переменная в Java?
Статическая переменная в Java — это переменная, принадлежащая классу и инициализируемая только один раз в начале выполнения. Это переменная, которая принадлежит классу, а не объекту (экземпляру). Статические переменные инициализируются только один раз, в начале выполнения. Эти переменные будут инициализированы первыми, перед инициализацией любых переменных экземпляра.
- Единая копия, которая будет использоваться всеми экземплярами класса
- Доступ к статической переменной можно получить напрямую по имени класса, и ей не нужен какой-либо объект.
Синтаксис:
<class-name>.<variable-name>
Что такое статический метод Java?
Статический метод в Java — это метод, принадлежащий классу, а не объекту. Статический метод может обращаться только к статическим данным. Это метод, принадлежащий классу, а не объекту (экземпляру). Статический метод может обращаться только к статическим данным. Он не может получить доступ к нестатическим данным (переменные экземпляра).
- Статический метод может вызывать только другие статические методы и не может вызывать из него нестатический метод.
- Доступ к статическому методу можно получить непосредственно по имени класса, и ему не нужен какой-либо объект.
- Статический метод никоим образом не может ссылаться на ключевые слова «this» или «super».
Синтаксис:
<class-name>.<method-name>
Примечание: Основной метод является статическим, поскольку он должен быть доступен для запуска приложения до того, как произойдет какое-либо создание экземпляра.
Давайте изучим нюансы статических ключевых слов, выполнив несколько упражнений!
Пример: как вызывать статические переменные и методы
Шаг 1) Скопируйте следующий код в редактор
public class Demo{
public static void main(String args[]){
Student s1 = new Student();
s1.showData();
Student s2 = new Student();
s2.showData();
//Student.b++;
//s1.showData();
}
}
class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.
Student(){
//Constructor incrementing static variable b
b++;
}
public void showData(){
System.out.println("Value of a = "+a);
System.out.println("Value of b = "+b);
}
//public static void increment(){
//a++;
//}
}
Шаг 2) Сохраните и скомпилируйте код. Запустите код как Java-демо.
Шаг 3) Ожидаемый результат показан ниже
На следующей диаграмме показано, как создаются ссылочные переменные и объекты, а также как различные экземпляры получают доступ к статическим переменным.
Шаг 4) Доступ к статической переменной можно получить извне класса, используя синтаксис ИмяКласса.Имя_Переменной. Раскомментируйте строки №7 и 8. Сохраните, скомпилируйте и запустите. Наблюдайте за результатом.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
Шаг 5) Раскомментируйте строки 25,26 и 27. Сохраните, скомпилируйте и запустите.
error: non-static variable a cannot be referenced from a static context a++;
Шаг 6) Ошибка = ? Это связано с тем, что невозможно получить доступ к переменной экземпляра «a«из метода статического класса Java»увеличить».
Что такое статический блок Java?
Команда статический блок это блок операторов внутри Java класс, который будет выполняться при первой загрузке класса в JVM, статический блок помогает инициализировать статические элементы данныхточно так же, как конструкторы помогают инициализировать члены экземпляра.
class Test{
static {
//Code goes here
}
}
Следующая программа является примером статического блока Java.
Пример: Как получить доступ к статическому блоку
public class Demo {
static int a;
static int b;
static {
a = 10;
b = 20;
}
public static void main(String args[]) {
System.out.println("Value of a = " + a);
System.out.println("Value of b = " + b);
}
}
вы получите следующий вывод программы.
Value of a = 10 Value of b = 20


