Статична змінна в Java

Статика може бути:

  1. Статичні змінні
  2. Статичні методи
  3. Статичні блоки коду.

Давайте спочатку розглянемо статичні змінні та статичні методи.

Що таке статична змінна 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) Очікуваний результат показано нижче


Java Статичні методи та змінні

На наступній діаграмі показано, як створюються довідкові змінні й об’єкти, а також доступ до статичних змінних різними примірниками.


Java Статичні методи та змінні

Крок 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

Підсумуйте цей пост за допомогою: