Многие из нас все еще путаются с ключевым словом static. Теперь мы обсудим, как используется статическое ключевое слово? и как это помогает сэкономить много кода от переписывания?
Посмотрите на следующий код
public class staticDemo{
public static void main(String args[]){
System.out.println("Hello world!"); //prints "Hello world"
}
}
“Привет, мир” – это базовая программа, верно? .Это то, как кто-то начинает изучать java. Вы когда-нибудь замечали, что в основном методе есть ключевое слово static ?. Что делает эта статика?.
Используя ключевое слово static в методе main() , мы можем вызвать метод main() без какого-либо экземпляра объекта, т.е. Мы можем вызывать статические методы, используя имя класса.
Давайте рассмотрим другой пример –
class A{
static void show(){
System.out.println("static method in class A");
}
}
public class staticDemo{
public static void main(String args[]){
A.show() // prints "static method in class A"
}
}
статическая переменная в Java
статические переменные – это переменные, которые применимы ко всем экземплярам объявленного класса. Когда переменная статична , ее значение одинаково для всех экземпляров. Если какой-либо из экземпляров изменяет значение статической переменной, это отражается и на всех остальных экземплярах.
рассмотрим следующий код –
class A{
static int i;
}
public class staticDemo{
public static void main(String args[]){
A obj1= new A();
A obj2 =new A();
A obj3 =new A();
obj3.i=10;
System.out.println(obj1.i); // 10
}
}
ПРИМЕЧАНИЕ – статические переменные могут быть доступны нестатическими методами. Но нестатические переменные недоступны в статических методах. Почему это так? , Поскольку нестатические переменные нуждаются в экземпляре для вызова переменных, и мы можем присваивать разные значения нестатическим переменным, создавая несколько объектов. Таким образом, компилятору будет сложно понять, к какому значению экземпляра значения я должен получить доступ.
## статический блок в java –
статический блок используется для инициализации статических переменных. статический блок выполняется только тогда, когда класс загружен в память, т.е. только один раз.
class A{
static int i;
static{
i=9;
System.out.println("static block in A");
}
}
public class staticDemo{
static{
System.out.println("static block in main");
}
public static void main(String args[]){
System.out.println(A.i);
System.out.println("static in main");
}
}
Статические блоки всегда выполняются первыми. статический блок выполняется, а затем выполняется метод main() . В main() методе мы имеем А.я здесь класс загружается в память, и при загрузке памяти выполняется статический блок и затем значение i печатается, наконец печатается “статика в главном”.
// output of above code static block in main static block in A 9 static in main
Резюме
- переменным и методам с ключевым словом
staticне требуется экземпляр для доступа к нему. К ним можно получить доступ, используя имя класса. статическиеблоки выполняются перед конструкторами и методами.- Если имеется несколько
статическихблоков, они выполняются в соответствии с последовательностью в коде. - нестатические переменные недоступны в
статическихметодах.
Спасибо за прочтение!. Я надеюсь вы узнали кое-что о статическом . Если вы почувствуете, что что-то не так, пожалуйста, дайте мне знать:)
Давайте подключимся к Твиттер .
Счастливого кодирования:)
Оригинал: “https://dev.to/saitejaballa/what-exactly-static-keyword-is-in-java-1lnj”