Статическое ключевое слово в Java | Статический блок, переменная, метод и класс
В Java ключевые слова — это зарезервированные слова, которые нельзя использовать в качестве идентификаторов. Всего в Java 57 ключевых слов. Один из них — « Статический “. В этой статье я дам вам краткий обзор того, как ключевое слово static в Java применимо к различным аспектам программирования.
Введение в статическое ключевое слово в Java
В Яве, статическое ключевое слово в основном используется для управления памятью. Его можно использовать с переменными, методами, блоками и вложенными классами. Это ключевое слово, которое используется для совместного использования одной и той же переменной или метода данного класса. По сути, static используется для постоянной переменной или метода, который одинаков для каждого экземпляра класса. Основной метод класса обычно называют статическим.
Чтобы создать статический член (блок, переменную, метод, вложенный класс), вам необходимо предварить его объявление ключевым словом статический. Когда член класса объявлен как статический, к нему можно получить доступ до того, как будут созданы объекты его класса, и без какой-либо ссылки на объект.
В языке программирования Java ключевое слово static не является модификатором доступа и может использоваться для следующего:
- Статический блок
- Статическая переменная
- Статический метод
- Статические классы
Давайте углубимся в детали каждого из этих методов с помощью примера.
Применение статического ключевого слова
Давайте сначала разберемся, как статический блок используется в языке программирования Java.
Статический блок
Если вам нужно выполнить вычисления, чтобы инициализировать ваш статические переменные , вы можете объявить статический блок, который выполняется ровно один раз при первой загрузке класса. Взгляните на приведенную ниже программу Java, чтобы понять, как использовать статический блок.
// Java program to demonstrate the use of static blocks
import java.util.*;
public class BlockExample{
// static variable
static int j = 10;
static int n;
// static block
static {
System.out.println("Static block initialized.");
n = j * 8;
}
public static void main(String[] args)
{
System.out.println("Inside main method");
System.out.println("Value of j : "+j);
System.out.println("Value of n : "+n);
}
}
Когда вы выполняете вышеуказанную программу, статический блок инициализируется и отображает значения инициализированных переменных.
Выход :
Static block initialized
Inside main method
Value of j:10
Value of n : 80
Теперь, когда вы знаете, как работает статический блок, давайте двигаться дальше и посмотрим, что такое статические переменные и чем они полезны.
Статическая переменная
Когда вы объявляете переменную статической, создается одна копия переменной, которая делится между всеми объектами на уровне класса. Статические переменные — это, по сути, глобальные переменные. По сути, все экземпляры класса используют одну и ту же статическую переменную. Статические переменные можно создавать только на уровне класса.
Теперь давайте разберемся с этим на примере.
// Java program demonstrate execution of static blocks and variables
import java.util.*;
public class VariableExample
{
// static variable
static int j = n();
// static block
static {
System.out.println("Inside the static block");
}
// static method
static int n() {
System.out.println("from n ");
return 20;
}
// static method(main !!)
public static void main(String[] args)
{
System.out.println("Value of j : "+j);
System.out.println("Inside main method");
}
}
Когда вы выполняете вышеуказанную программу, она будет выполнять статический блок и переменную в порядке, определенном в приведенной выше программе.
Выход:
from n
Inside the static block
Value of j: 20
Inside main method
Поняв это, давайте углубимся в эту статью о ключевом слове Static в Java и узнаем, что такое статические методы и вложенные классы.
Статические методы
Когда метод объявлен с статический ключевое слово, он известен как статический метод. Наиболее распространенным примером статического метода является главный( ) метод. Методы, объявленные как статические, могут иметь следующие ограничения:
Они могут напрямую вызывать только другие статические методы.
Они могут напрямую обращаться к статическим данным.
Теперь давайте разберемся со статическими методами на примере
// java program to demonstrate restriction on static methods
public class StaticMethodExample
{
// static variable
static int j = 100;
// instance variable
int n = 200;
// static method
static void a()
{
a = 200;
System.out.println("Print from a");
// Cannot make a static reference to the non-static field b
n = 100; // compilation error
// Cannot make a static reference to the
// non-static method a2() from the type Test
a2(); // compilation error
// Cannot use super in a static context
System.out.println(super.j); // compiler error
}
// instance method
void a2()
{
System.out.println("Inside a2");
}
public static void main(String[] args)
{
// main method
}
}
В приведенных выше примерах вы можете увидеть, как ограничения накладываются на статические методы, а также как вам разрешено использовать ключевое слово super в статическом контексте. Это было все о статических методах. Теперь давайте посмотрим, что такое вложенные классы.
Статический класс
Можно сделать класс статический только если это вложенный класс. Вложенному статическому классу не нужна ссылка на внешний класс. В этом случае статический класс не может получить доступ к нестатическим членам класса Outer. Давайте возьмем пример, чтобы понять, как это работает
public class NestedExample{
private static String str= "Edureka"
//Static class
static class MyNestedClass{
//non-static method
public void disp(){
System.out.println(str);
}
}
public static void main(String args[]){
NestedExample.MyNestedClass obj = new NestedExample.MyNestedClass();
obj.disp();
}
Когда вы выполняете приведенный выше код, ваш вывод выглядит так:
Edureka
Вот и все о различных применениях Static Keyword в Java. На этом мы подошли к концу этой статьи. Надеюсь, вы нашли его информативным.
Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев к этой статье «Статическое ключевое слово в Java», и мы свяжемся с вами как можно скорее.