Статична змінна в Java
⚡ Розумний підсумок
Статична змінна в Java належить класу, а не будь-якому об'єкту, та ініціалізується один раз під час завантаження класу. Одна спільна копія обслуговує всі екземпляри, доступні безпосередньо через ім'я класу без створення об'єкта.

Статика може бути:
- Статичні змінні
- Статичні методи
- Статичні блоки Code.
Давайте спочатку розглянемо статичні змінні та статичні методи.
Що таке статична змінна Java?
Статична змінна в Java — це змінна, яка належить класу та ініціалізується лише один раз на початку виконання. Це змінна, яка належить класу, а не об'єкту (екземпляру). Статичні змінні ініціалізуються лише один раз, на початку виконання. Ці змінні будуть ініціалізовані першими, перед ініціалізацією будь-яких змінних екземпляра.
- Єдина копія для всіх екземплярів класу
- Доступ до статичної змінної можна отримати безпосередньо за назвою класу, і вона не потребує жодного об’єкта
Синтаксис:
<class-name>.<variable-name>
Що таке статичний метод Java?
Статичний метод в Java це метод, який належить до класу, а не до об’єкта. Статичний метод може отримати доступ лише до статичних даних. Це метод, який належить до класу, а не до об’єкта (примірника). Статичний метод може отримати доступ лише до статичних даних. Він не може отримати доступ до нестатичних даних (екземпляри змінних).
- Статичний метод може викликати лише інші статичні методи і не може викликати з нього нестатичний метод.
- Доступ до статичного методу можна отримати безпосередньо за назвою класу, і він не потребує жодного об’єкта
- Статичний метод не може посилатися на ключові слова «це» або «супер».
Синтаксис:
<class-name>.<method-name>
Примітка: main метод є статичним, оскільки він має бути доступним для запуску програми до того, як буде створено будь-який екземпляр.
Давайте вивчимо нюанси статичних ключових слів, виконавши кілька вправ!
Приклад: як викликати статичні змінні та методи
Крок 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) Доступ до статичної змінної можна отримати поза класом за допомогою синтаксису ClassName.Variable_Name. Розкоментуйте рядки № 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 і XNUMX. Збережіть, скомпілюйте та запустіть.
error: non-static variable a cannot be referenced from a static context a++;
Крок 6) Помилка = ? Це тому, що неможливо отримати доступ до змінної екземпляра "a"з методу статичного класу Java"приріст».
Що таке статичний блок Java?
Команда статичний блок є блоком оператора всередині a Java клас, який буде виконано під час першого завантаження класу в JVM. static block допомагає ініціалізувати члени статичних даних, так само як конструктори допомагають ініціалізувати члени екземпляра.
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


