logo

Статичне ключове слово Java

  1. Статична змінна
  2. Програма лічильника без статичної змінної
  3. Програма лічильника зі статичною змінною
  4. Статичний метод
  5. Обмеження для статичного методу
  6. Чому основний метод є статичним?
  7. Статичний блок
  8. Чи можемо ми виконати програму без основного методу?

The статичне ключове слово в Java використовується в основному для керування пам'яттю. Ми можемо застосувати static ключове слово з змінні , методи, блоки і вкладені класи . Ключове слово static належить до класу, ніж екземпляр класу.

обрізка javascript

Статика може бути:

  1. Змінна (також відома як змінна класу)
  2. Метод (також відомий як метод класу)
  3. Блокувати
  4. Вкладений клас
Статика в Java

1) Статична змінна Java

Якщо ви оголошуєте будь-яку змінну як статичну, її називають статичною змінною.

  • Статичну змінну можна використовувати для посилання на загальну властивість усіх об’єктів (яка не є унікальною для кожного об’єкта), наприклад, назва компанії співробітників, назва коледжу студентів тощо.
  • Статична змінна отримує пам'ять тільки один раз в області класу під час завантаження класу.

Переваги статичної змінної

Це робить вашу програму ефективна пам'ять (тобто економить пам’ять).

Розуміння проблеми без статичної змінної

 class Student{ int rollno; String name; String college='ITS'; } 

Припустімо, що в моєму коледжі навчається 500 студентів, тепер усі члени даних екземпляра отримуватимуть пам’ять кожного разу, коли створюється об’єкт. Усі студенти мають свій унікальний rollno та ім’я, тому в цьому випадку елемент даних екземпляра є хорошим. Тут «коледж» відноситься до спільної власності всіх об'єктів . Якщо ми зробимо його статичним, це поле отримає пам’ять лише один раз.

Статична властивість Java є спільною для всіх об’єктів.

Приклад статичної змінної

 //Java Program to demonstrate the use of static variable class Student{ int rollno;//instance variable String name; static String college ='ITS';//static variable //constructor Student(int r, String n){ rollno = r; name = n; } //method to display the values void display (){System.out.println(rollno+' '+name+' '+college);} } //Test class to show the values of objects public class TestStaticVariable1{ public static void main(String args[]){ Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); //we can change the college of all objects by the single line of code //Student.college='BBDIT'; s1.display(); s2.display(); } } 
Перевірте зараз

Вихід:

java char до цілого числа
 111 Karan ITS 222 Aryan ITS 

Програма лічильника без статичної змінної

У цьому прикладі ми створили змінну екземпляра під назвою count, яка збільшується в конструкторі. Оскільки змінна екземпляра отримує пам’ять під час створення об’єкта, кожен об’єкт матиме копію змінної екземпляра. Якщо його збільшити, він не відображатиме інші об’єкти. Отже, кожен об’єкт матиме значення 1 у змінній count.

 //Java Program to demonstrate the use of an instance variable //which get memory each time when we create an object of the class. class Counter{ int count=0;//will get memory each time when the instance is created Counter(){ count++;//incrementing value System.out.println(count); } public static void main(String args[]){ //Creating objects Counter c1=new Counter(); Counter c2=new Counter(); Counter c3=new Counter(); } } 
Перевірте зараз

Вихід:

 1 1 1 

Програма лічильника за статичною змінною

Як ми вже згадували вище, статична змінна отримає пам'ять лише один раз, якщо будь-який об'єкт змінить значення статичної змінної, він збереже своє значення.

 //Java Program to illustrate the use of static variable which //is shared with all objects. class Counter2{ static int count=0;//will get memory only once and retain its value Counter2(){ count++;//incrementing the value of static variable System.out.println(count); } public static void main(String args[]){ //creating objects Counter2 c1=new Counter2(); Counter2 c2=new Counter2(); Counter2 c3=new Counter2(); } } 
Перевірте зараз

Вихід:

 1 2 3 

2) Статичний метод Java

Якщо ви застосовуєте ключове слово static до будь-якого методу, це називається статичним методом.

  • Статичний метод належить класу, а не об’єкту класу.
  • Статичний метод можна викликати без необхідності створення екземпляра класу.
  • Статичний метод може отримати доступ до статичного елемента даних і змінити його значення.

Приклад статичного методу

 //Java Program to demonstrate the use of a static method. class Student{ int rollno; String name; static String college = 'ITS'; //static method to change the value of static variable static void change(){ college = 'BBDIT'; } //constructor to initialize the variable Student(int r, String n){ rollno = r; name = n; } //method to display values void display(){System.out.println(rollno+' '+name+' '+college);} } //Test class to create and display the values of object public class TestStaticMethod{ public static void main(String args[]){ Student.change();//calling change method //creating objects Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); Student s3 = new Student(333,'Sonoo'); //calling display method s1.display(); s2.display(); s3.display(); } } 
Перевірте зараз
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Ще один приклад статичного методу, який виконує звичайне обчислення

 //Java Program to get the cube of a given number using the static method class Calculate{ static int cube(int x){ return x*x*x; } public static void main(String args[]){ int result=Calculate.cube(5); System.out.println(result); } } 
Перевірте зараз
 Output:125 

Обмеження для статичного методу

Є два основних обмеження для статичного методу. Вони є:

коли закінчується q1
  1. Статичний метод не може використовувати нестатичний елемент даних або безпосередньо викликати нестатичний метод.
  2. this і super не можна використовувати в статичному контексті.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Перевірте зараз
 Output:Compile Time Error 

З) Чому основний метод Java є статичним?

Відповідь) Це тому, що об’єкт не зобов’язаний викликати статичний метод. Якби це був нестатичний метод, JVM спочатку створює об’єкт, а потім викликає метод main(), що призведе до проблеми виділення додаткової пам’яті.


3) Статичний блок Java

  • Використовується для ініціалізації статичних даних.
  • Він виконується перед основним методом під час завантаження класу.

Приклад статичного блоку

 class A2{ static{System.out.println('static block is invoked');} public static void main(String args[]){ System.out.println('Hello main'); } } 
Перевірте зараз
 Output:static block is invoked Hello main 

Q) Чи можемо ми виконати програму без методу main()?

Відповідь) Ні, одним із способів був статичний блок, але це було можливо до JDK 1.6. Починаючи з JDK 1.7, неможливо виконати клас Java без основний метод .

 class A3{ static{ System.out.println('static block is invoked'); System.exit(0); } } 
Перевірте зараз

Вихід:

круговий розклад
 static block is invoked 

Починаючи з JDK 1.7 і вище, виведення буде таким:

 Error: Main method not found in class A3, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application