Статичний метод Java, змінний та блок із прикладом

Зміст:

Anonim

Статичним може бути:

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

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

Що таке статична змінна в 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