logo

Java statička ključna riječ

  1. Statička varijabla
  2. Program brojača bez statičke varijable
  3. Program brojača sa statičkom varijablom
  4. Statička metoda
  5. Ograničenja za statičku metodu
  6. Zašto je glavna metoda statična?
  7. Statički blok
  8. Možemo li izvršiti program bez glavne metode?

The statična ključna riječ u Java uglavnom se koristi za upravljanje memorijom. Možemo primijeniti statičku ključnu riječ sa varijable , metode, blokovi i ugniježđene klase . Ključna riječ static pripada klasi nego instanci klase.

stol u reagirati

Statika može biti:

  1. Varijabla (poznata i kao varijabla klase)
  2. Metoda (poznata i kao metoda klase)
  3. Blok
  4. Ugniježđena klasa
Statički u Javi

1) Java statička varijabla

Ako deklarirate bilo koju varijablu kao statičnu, ona je poznata kao statička varijabla.

  • Statička varijabla može se koristiti za upućivanje na zajedničko svojstvo svih objekata (koje nije jedinstveno za svaki objekt), na primjer, naziv tvrtke zaposlenika, naziv fakulteta studenata itd.
  • Statička varijabla dobiva memoriju samo jednom u području klase u trenutku učitavanja klase.

Prednosti statičke varijable

To čini vaš program učinkovita memorija (tj. štedi memoriju).

Razumijevanje problema bez statičke varijable

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

Pretpostavimo da na mom koledžu ima 500 studenata, a sada će svi članovi podataka instance dobiti memoriju svaki put kada se objekt kreira. Svi studenti imaju svoje jedinstveno ime i ime, tako da je član instance podataka dobar u tom slučaju. Ovdje se 'koledž' odnosi na zajedničko vlasništvo svih objekti . Ako ga učinimo statičnim, ovo polje će dobiti memoriju samo jednom.

Java statičko svojstvo dijeli se sa svim objektima.

Primjer statičke varijable

 //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(); } } 
Testirajte sada

Izlaz:

 111 Karan ITS 222 Aryan ITS 

Program brojača bez statičke varijable

U ovom smo primjeru stvorili varijablu instance pod nazivom count koja se inkrementira u konstruktoru. Budući da varijabla instance dobiva memoriju u trenutku stvaranja objekta, svaki će objekt imati kopiju varijable instance. Ako se poveća, neće odražavati druge objekte. Tako će svaki objekt imati vrijednost 1 u varijabli brojanja.

css tekst za omatanje
 //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(); } } 
Testirajte sada

Izlaz:

 1 1 1 

Program brojača po statičkoj varijabli

Kao što smo gore spomenuli, statička varijabla će dobiti memoriju samo jednom, ako bilo koji objekt promijeni vrijednost statičke varijable, zadržat će svoju vrijednost.

 //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(); } } 
Testirajte sada

Izlaz:

metoda podniza u Javi
 1 2 3 

2) Java statička metoda

Ako statičku ključnu riječ primijenite bilo kojom metodom, to je poznato kao statička metoda.

  • Statička metoda pripada klasi, a ne objektu klase.
  • Statička metoda može se pozvati bez potrebe za stvaranjem instance klase.
  • Statička metoda može pristupiti statičkom podatkovnom članu i može promijeniti njegovu vrijednost.

Primjer statičke metode

 //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(); } } 
Testirajte sada
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Još jedan primjer statičke metode koja izvodi normalan izračun

 //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); } } 
Testirajte sada
 Output:125 

Ograničenja za statičku metodu

Dva su glavna ograničenja za statičku metodu. Oni su:

  1. Statička metoda ne može koristiti nestatičke podatkovne članove niti izravno pozivati ​​nestatičke metode.
  2. this i super ne mogu se koristiti u statičkom kontekstu.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Testirajte sada
 Output:Compile Time Error 

P) Zašto je Java main metoda statična?

Odgovor) To je zato što objekt nije dužan pozvati statičku metodu. Da je to nestatična metoda, JVM prvo stvara objekt, a zatim poziva metodu main() koja će dovesti do problema dodjele dodatne memorije.


3) Java statički blok

  • Koristi se za inicijalizaciju člana statičkih podataka.
  • Izvršava se prije glavne metode u trenutku učitavanja klase.

Primjer statičkog bloka

 class A2{ static{System.out.println('static block is invoked');} public static void main(String args[]){ System.out.println('Hello main'); } } 
Testirajte sada
 Output:static block is invoked Hello main 

P) Možemo li izvršiti program bez metode main()?

Odgovor) Ne, jedan od načina bio je statički blok, ali to je bilo moguće do JDK 1.6. Od JDK 1.7, nije moguće izvršiti Java klasu bez glavna metoda .

 class A3{ static{ System.out.println('static block is invoked'); System.exit(0); } } 
Testirajte sada

Izlaz:

prebacivanje metoda java
 static block is invoked 

Od JDK 1.7 i novijih, izlaz bi bio:

 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