Статическое ключевое слово Java с примерами

staticheskoe klyuchevoe slovo java s primerami

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

Ключевое слово static можно использовать с переменными, методами, блоками кода и вложенными классами.

Статические переменные

пример:

public class Counter {
  public static int COUNT = 0;
  Counter() {
    COUNT++;
  }
}

The COUNT переменная будет общей для всех объектов этого класса. Когда мы создаем объекты нашего класса Counter в main и получаем доступ к статической переменной.

public class MyClass {
  public static void main(String[] args) {
    Counter c1 = new Counter();
    Counter c2 = new Counter();
    System.out.println(Counter.COUNT);
  }
}
// Outputs "2"

Выход равен 2, потому что COUNT переменная статическая и увеличивается на единицу каждый раз, когда создается новый объект класса Counter. Вы также можете получить доступ к статической переменной, используя любой объект этого класса, например c1.COUNT.

Статические методы

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

  1. Статический метод не может использовать нестатические члены (переменные или функции) класса.
  2. Статический метод использовать нельзя this или super ключевые слова.

пример:

public class Counter {
  public static int COUNT = 0;
  Counter() {
    COUNT++;
  }

  public static void increment(){
    COUNT++;
  }
}

Статические методы можно вызвать из экземпляра класса.

public class MyClass {
  public static void main(String[] args) {
    Counter.increment();
    Counter.increment();
    System.out.println(Counter.COUNT);
  }
}
// Outputs "2"

Выход равен 2, поскольку он увеличивается статическим методом increament(). Подобно статическим переменным, статические методы также можно получить с помощью сменных экземпляров.

Статические блоки

Блоки статического кода используются для инициализации статических переменных. Эти блоки выполняются сразу после объявления статических переменных.

пример:

public class Saturn {
  public static final int MOON_COUNT;

  static {
    MOON_COUNT = 62;
  }
}
public class Main {
  public static void main(String[] args) {
    System.out.println(Saturn.MOON_COUNT);
  }
}
// Outputs "62"

Выход 62, поскольку переменный MOON_COUNT назначается это значение в статическом блоке.

Статические вложенные классы

Класс может иметь статический вложенный класс, доступ к которому можно получить посредством имени внешнего класса.

пример:

public class Outer {

  public Outer() {
  }

  public static class Inner {
    public Inner() {
    }
  }
}

В приведенном выше примере класс Inner можно получить прямой доступ как статический член класса Outer.

public class Main {
  public static void main(String[] args) {
    Outer.Inner inner = new Outer.Inner();
  }
}

Один из вариантов использования статических вложенных классов в шаблоне Builder, широко используемом в Java.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *