Пример ключевого слова Java Static
Ключевое словоstatic
в Java - это модификатор, используемый для создания кода с эффективным использованием памяти. Это помогает в управлении памятью, занимаемой объектами, переменными и определениями методов. Ключевое слово static гарантирует, что в памяти создан только один экземпляр соответствующего метода, объекта или переменной.
Он используется, когда нужна переменная уровня класса для управления определенным значением атрибута, а также когда нужен метод уровня класса для выполнения определенных операций. Использование ключевого слова static подробно обсуждается в каждом контенте ниже.
1. Ключевое слово STATIC как модификатор переменной
Статическое ключевое слово, когда оно используется для переменных, указывает, что переменная должна быть создана только один раз для каждого класса. Он занимает одну единицу памяти в соответствии со своим типом данных независимо от количества создаваемых объектов. Таким образом, значение ключевого слова static является общим для каждого объекта определенного класса.
Статическая переменная - это тип переменной, для доступа к которой не требуется экземпляр объекта. К нему можно получить прямой доступ, используя синтаксис<classname>.<variablename>
Давайте разберемся с этим на примере:
Приведенный ниже код представляет собой класс, содержащий определенные сведения о сотруднике. Он содержит статическую переменную count, которая используется для подсчета количества создаваемых сотрудников.
Employee.java
package com.techfou; public class Employee { static int count = 0; private String name; private int leaves; Employee() { count++; } Employee(String name, int leaves) { this.name = name; this.leaves = leaves; count++; } public static int getCount() { return count; } public static void setCount(int count) { Employee.count = count; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getLeaves() { return leaves; } public void setLeaves(int leaves) { this.leaves = leaves; } }
Приведенный ниже класс - это тестовый класс, созданный для проверки функциональности и работы статической переменной. Выполнив код, вы можете увидеть, что значение статической переменной count совместно используется всеми объектами сотрудников.
StaticVariableExample.java
package com.techfou; public class StaticVariableExample { public static void main(String[] args) { Employee e1 = new Employee("Employee1", 5); Employee e2 = new Employee("Employee2", 10); System.out.println("Employee Count using e1: " + e1.getCount()); System.out.println("Employee Count using e2: " + e2.getCount()); System.out.println("Employee Count using static reference: " + Employee.getCount()); } }
В классе Employee «count» - это статическая переменная, экземпляр которой был создан только один раз для каждого класса. Таким образом, независимо от количества объектов, которые мы создаем, значение «count» распределяется между всеми объектами, что четко видно на выходе.
При запуске класса StaticExample вывод получается, как показано ниже:
Employee Count using e1: 2 Employee Count using e2: 2 Employee Count using static reference: 2
2. Ключевое слово STATIC как модификатор метода
Статический метод в Java используется, когда разработчик желает предоставить метод непосредственно пользователю, т.е. без необходимости создавать фактический объект для вызова метода. Статические методы можно вызывать напрямую, используя синтаксис<classname>.<methodname>
.
Статический метод может воздействовать только на статические переменные и объекты. В дополнение к этому, любой вызов метода, выполняемый статическим методом, должен в свою очередь ссылаться на статический метод.
Давайте разберемся с этим на примере:
StaticMethodExample.java
package com.example; public class StaticMethodExample { private int x = 0; private static int y = 0; public static void main(String[] args) { // If uncommented, x++ gives compilation error // x++; // y++ works fine without compilation error y++; // If uncommented, sayHello() gives compilation error // sayHello(); // sayHi() works fine without compilation error sayHi(); System.out.println("Value of y is: " + y); } public void sayHello() { System.out.println("Hello"); } public static void sayHi() { System.out.println("Hi"); } }
Обратите внимание на комментарии также в приведенном выше коде. Они определяют контексты, в которых вы можете получить ошибки компиляции при ссылке на нестатическую переменную или метод из статической функции. Выполнив приведенный выше код, мы получим следующий результат.
Hi Value of y is: 1
Скачать исходный код
Скачать -StaticKeyword.zip (6 KB)