Что значит Static в Java?

Static - это модификатор без доступа. Это означает, что что-то (поле, метод, блок или вложенный класс) связано с типом, а не с каким-либо конкретным экземпляром типа.

Ключевое слово Static можно применить к:

В Java статические методы могут быть вызваны без создания объекта класса.

В обычном случае мы вызываем метод из экземпляра этого класса.

Пример

Когда мы создаем статический метод внутри класса, методы могут быть вызваны без создания объекта класса.

Пример

В Java статический метод может получить доступ только к статическим переменным класса и вызвать только статические методы класса. Обычно статические методы - это методы утилиты, которые мы хотим раскрывать для использования другими классами без необходимости создания экземпляра. Методы класса часто используются для предоставления глобальных функций для программ Java. Например, методы в пакете Java.lang.Math являются методами класса. Поскольку статические методы также не относятся к определенному экземпляру, они не могут ссылаться на члены экземпляра. Статические члены могут ссылаться только на статические члены.

Особенности статического метода

  1. Статический метод - это метод, который принадлежит классу, а не экземпляру (объекту)
  2. Статический метод может быть вызван без необходимости создания экземпляра класса
  3. Статический метод может вызывать только другие статические методы и не может вызывать нестатический метод из него
  4. Статический метод может получить доступ к члену статических данных и может изменить его значение.
  5. Статический метод не может ссылаться на это или супер-ключевые слова в любом случае

Java Static переменная

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

Например, если у вас есть переменная: private static int stc = 0; и вы увеличиваете его (stc ++) в одном экземпляре, это изменение будет отражено во всех экземплярах. stc теперь будет 1 во всех случаях.

Блок инициализации

Статический инициализатор представляет собой статический {} блок кода внутри класса Java и запускается только за один раз до вызова конструктора или основного метода. Блок кода со статическим модификатором означает инициализатор класса; без статического модификатора блок кода является инициализатором экземпляра.

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

Однако из Java 7 это больше не работает, даже если он компилируется, при попытке его выполнить появляется следующая ошибка:

Вложенный класс

Вложенные классы в Java делятся на две категории: статические и нестатические. Вложенные классы, объявленные static, просто называются статическими вложенными классами.

Пример

Чтобы создать объект для статического вложенного класса, используйте следующий синтаксис:

Главное различие между ними, вы не можете создать экземпляр NonStaticNestedClass без OuterClass, тогда как вы можете создать объект StaticNestedClass независимо.

Разница между статическим вложенным классом и не статическим вложенным классом

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

Класс Nonstatic Nested неявно связан с окружающим экземпляром содержащего класса, это означает, что можно вызвать методы и получить доступ к окружающим экземплярам. Одним распространенным применением нестатического вложенного класса является определение класса адаптера.

Источник: http://net-informations.com/Java/cJava/static.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector