Статична змінна в Java
- Статичні змінні
- Статичні методи
- Статичні блоки коду.
Давайте спочатку розглянемо статичні змінні та статичні методи.
Що таке статична змінна 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


