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

Содержание:

Anonim

Статика может быть:

  1. Статические переменные
  2. Статические методы
  3. Статические блоки кода.

Давайте сначала посмотрим на статические переменные и статические методы.

Что такое статическая переменная в Java?

Статическая переменная в Java - это переменная, которая принадлежит классу и инициализируется только один раз в начале выполнения. Это переменная, которая принадлежит классу, а не объекту (экземпляру). Статические переменные инициализируются только один раз в начале выполнения. Эти переменные будут инициализированы в первую очередь перед инициализацией любых переменных экземпляра.

  • Единая копия, которая будет использоваться всеми экземплярами класса
  • Доступ к статической переменной можно получить напрямую по имени класса, и ей не нужен какой-либо объект.

Синтаксис:

< class-name>. 

Что такое статический метод в Java?

Статический метод в Java - это метод, который принадлежит классу, а не объекту. Статический метод может обращаться только к статическим данным. Это метод, который принадлежит классу, а не объекту (экземпляру). Статический метод может обращаться только к статическим данным. Он не может получить доступ к нестатическим данным (переменным экземпляра).

  • Статический метод может вызывать только другие статические методы и не может вызывать из него нестатический метод.
  • Доступ к статическому методу можно получить напрямую по имени класса, и ему не нужен какой-либо объект.
  • Статический метод никоим образом не может ссылаться на ключевые слова this или super.

Синтаксис:

< class-name>. 

Примечание: метод main является статическим, так как он должен быть доступен для запуска приложения до того, как будет выполнено какое-либо создание экземпляра.

Давайте изучим нюансы статических ключевых слов, выполнив несколько упражнений!

Пример: как вызвать статические переменные и методы

Шаг 1) Скопируйте следующий код в редактор

public class Demo {public static void main (String args []) {Студент s1 = новый Студент ();s1.showData ();Студент s2 = новый Студент ();s2.showData ();//Student.b++;//s1.showData ();}}class Student {int a; // инициализируется нулемстатический int b; // инициализируется нулем только тогда, когда класс загружается не для каждого созданного объекта.Ученик(){// Конструктор увеличивает статическую переменную bb ++;}public void showData () {System.out.println ("Значение a =" + a);System.out.println ("Значение b =" + b);}// public static void increment () {// 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 « increment ».

Что такое статический блок в Java?

Статический блок представляет собой блок утверждения внутри класса Java , который будет выполняться , когда класс впервые загружается в JVM. Статический блок помогает инициализировать статические элементы данных , так же , как конструкторы помогают инициализировать член экземпляра.

class Test{static {//Code goes here}}

Следующая программа является примером статического блока Java.

Пример: как получить доступ к статическому блоку

public class Demo {статический int a;статический int b;static {а = 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