Ключевое слово static
в Java является модификатором, используемым для создания кода, эффективного для памяти. Это помогает в управлении памятью, занимаемой объектами, переменными и определениями методов. Ключевое слово static гарантирует, что в памяти создан только один экземпляр соответствующего метода, объекта или переменной.
Он используется, когда необходимо иметь переменную уровня класса для управления определенным значением атрибута, а также когда требуется метод уровня класса для выполнения определенных операций. Использование ключевого слова static подробно обсуждается в каждом содержимом ниже.
1. СТАТИЧЕСКОЕ ключевое слово как модификатор переменной
Ключевое слово Static, используемое для переменных, указывает, что переменная должна создаваться только один раз для каждого класса. Он занимает одну единицу памяти в соответствии со своим типом данных независимо от количества создаваемых объектов. Таким образом, значение ключевого слова static является общим для каждого объекта определенного класса.
Статическая переменная – это тип переменной, для доступа к которой не требуется экземпляр объекта. К нему можно получить прямой доступ, используя синтаксис <имя класса>.<имя переменной>
Давайте разберемся в этом на примере:
Приведенный ниже код представляет собой класс, содержащий определенные сведения о сотруднике. Он содержит статическую переменную “count”, которая используется для подсчета количества создаваемых сотрудников.
package com.mkyong; 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” является общим для всех объектов employee.
package com.mkyong; 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” – это статическая переменная, экземпляр которой создается только один раз для каждого класса. Таким образом, независимо от количества объектов, которые мы создаем, значение “количество” является общим для всех объектов, которые четко видны в выходных данных.
При запуске класса StaticExample вывод получается, как показано ниже:
Employee Count using e1: 2 Employee Count using e2: 2 Employee Count using static reference: 2
2. СТАТИЧЕСКОЕ ключевое слово как модификатор метода
Статический метод в Java используется, когда разработчик хочет предоставить метод непосредственно пользователю, т. е. без необходимости создавать фактический объект для вызова метода. Статические методы могут быть вызваны напрямую с использованием синтаксиса <имя_класса>.<имя_метода>
.
Статический метод может действовать только на статические переменные и объекты. В дополнение к этому, любой вызов метода, выполняемый статическим методом, должен, в свою очередь, ссылаться на статический метод.
Давайте разберемся в этом на примере:
package com.mkyong; 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
Скачать Исходный Код
Рекомендации
Оригинал: “https://mkyong.com/java/java-static-keyword-example/”