Статичним може бути:
- Статичні змінні
- Статичні методи
- Статичні блоки коду.
Давайте спочатку розглянемо статичні змінні та статичні методи.
Що таке статична змінна в Java?
Статична змінна в Java - це змінна, яка належить до класу та ініціалізується лише один раз на початку виконання. Це змінна, яка належить класу, а не об’єкту (екземпляру). Статичні змінні ініціалізуються лише один раз, на початку виконання. Ці змінні будуть ініціалізовані спочатку, перед ініціалізацією будь-яких змінних екземпляра.
- Одна копія, якою мають користуватися всі екземпляри класу
- До статичної змінної можна отримати прямий доступ за назвою класу і не потребує жодного об’єкта
Синтаксис:
< class-name>.
Що таке статичний метод у Java?
Статичний метод у Java - це метод, який належить до класу, а не до об'єкта. Статичний метод може отримати доступ лише до статичних даних. Це метод, який належить класу, а не об’єкту (екземпляру). Статичний метод може отримати доступ лише до статичних даних. Він не може отримати доступ до нестатичних даних (змінних екземпляра).
- Статичний метод може викликати лише інші статичні методи і не може викликати з нього нестатичний метод.
- До статичного методу можна отримати прямий доступ за назвою класу і не потребує жодного об’єкта
- Статичний метод все одно не може посилатися на ключові слова "this" або "super"
Синтаксис:
< class-name>.
Примітка: основний метод є статичним, оскільки він повинен бути доступним для запуску програми, перш ніж виконувати будь-які екземпляри.
Давайте вивчимо нюанси статичних ключових слів, виконуючи вправи!
Приклад: Як викликати статичні змінні та методи
Крок 1) Скопіюйте наступний код у редактор
публічний клас Демо {public static void main (String args []) {Student s1 = new Student ();s1.showData ();Student s2 = new Student ();s2.showData ();// Студент.b++;//s1.showData ();}}клас Студент {int a; // ініціалізується до нулястатичний int b; // ініціалізується до нуля лише тоді, коли клас завантажується не для кожного створеного об'єкта.Студент () {// Конструктор, що збільшує статичну змінну bb ++;}public void showData () {System.out.println ("Значення a =" + a);System.out.println ("Значення b =" + b);}// відкритий статичний приріст порожнечі () {// a ++;//}}
Крок 2) Збережіть та скомпілюйте код. Запустіть код як, Java Demo .
Крок 3) Очікуваний результат показано нижче
На наступній схемі показано, як створюються посилальні змінні та об'єкти та доступ до статичних змінних у різних екземплярах.
Крок 4) Можна отримати доступ до статичної змінної поза класом, використовуючи синтаксис ClassName.Variable_Name . Рядок для коментарів №7 і 8. Зберегти, скомпілювати та запустити. Дотримуйтесь результатів.
Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value 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.
Приклад: Як отримати доступ до статичного блоку
публічний клас Демо {статичний int a;статичний int b;статичний {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Значення a =" + a);System.out.println ("Значення b =" + b);}}
ви отримаєте наступний результат програми.
Value of a = 10Value of b = 20