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

Ключевое слово static в основном используется в Java для управления памятью. Его память выделяется только один раз во время загрузки класса. Статические методы являются собственностью класса, а не ссылкой на объект. Мы не хотим создавать объект для вызова статических методов при загрузке класса. Статические методы не связаны с конкретным экземпляром; вместо этого они связаны с классом, что означает, что они зависят от класса. Мы не можем ограничить статические методы классом, но если мы создадим конструктор в частном порядке, посторонние не смогут создать экземпляр этого класса с помощью нового ключевого слова. переменные экземпляра. Доступ к статическим переменным можно получить с помощью статических методов.

ОТВЕРСТИЯ ОТ ПУЛЬ

  • Статический метод следует вызывать, используя имя класса, а не переменную ссылки на объект:
    Math.random() vs. myFoo.go()
  • Статический метод может быть вызван без каких-либо экземпляров класса метода в куче.
  • Статический метод хорош для служебного метода, который не зависит (и никогда не будет) зависеть от конкретного значения переменной экземпляра
    .
  • Статический метод не связан с конкретным экземпляром — только с классом — поэтому он не может получить доступ ни к каким значениям переменных экземпляра своего класса. Он не знал бы, какие значения экземпляра использовать.
  • Статический метод не может получить доступ к нестатическому методу, поскольку нестатические методы обычно связаны с состоянием переменной экземпляра.
  • Если у вас есть класс только со статическими методами, и вы не хотите, чтобы этот класс создавался, вы можете пометить конструктор как частный.
  • Статическая переменная — это переменная, совместно используемая всеми членами данного класса. В классе существует только одна копия статической переменной, а не одна копия для каждого отдельного экземпляра для переменных экземпляра.
  • Статический метод может обращаться к статической переменной.
  • Чтобы сделать константу в Java, пометьте переменную как статическую и конечную.
  • Конечной статической переменной должно быть присвоено значение либо во время ее объявления, либо в статическом инициализаторе.
    static {
    DOG_CODE = 420;
    }
  • Соглашение об именах для констант (последних статических переменных) состоит в том, чтобы все имена были в верхнем регистре.
  • Окончательное значение переменной не может быть изменено после того, как оно было присвоено.
  • Присвоение значения конечной переменной экземпляра должно быть либо во время ее объявления, либо в конструкторе.
  • Метод final не может быть переопределен.
  • Конечный класс не может быть расширен (подкласс).