logo

Statična ključna beseda Java

  1. Statična spremenljivka
  2. Program števca brez statične spremenljivke
  3. Program števca s statično spremenljivko
  4. Statična metoda
  5. Omejitve za statično metodo
  6. Zakaj je glavna metoda statična?
  7. Statični blok
  8. Ali lahko izvajamo program brez glavne metode?

The statična ključna beseda v Java se uporablja predvsem za upravljanje pomnilnika. Uporabimo lahko statično ključno besedo z spremenljivke , metode, bloki in ugnezdeni razredi . Statična ključna beseda pripada razredu kot primerek razreda.

tipkopisna zanka foreach

Statika je lahko:

  1. Spremenljivka (znana tudi kot spremenljivka razreda)
  2. Metoda (znana tudi kot metoda razreda)
  3. Blokiraj
  4. Ugnezdeni razred
Statični v Javi

1) Java statična spremenljivka

Če katero koli spremenljivko deklarirate kot statično, je znana kot statična spremenljivka.

  • Statično spremenljivko lahko uporabite za sklicevanje na skupno lastnost vseh objektov (ki ni edinstvena za vsak objekt), na primer ime podjetja zaposlenih, ime fakultete študentov itd.
  • Statična spremenljivka dobi pomnilnik samo enkrat v območju razreda v času nalaganja razreda.

Prednosti statične spremenljivke

To naredi vaš program pomnilniško učinkovito (tj. prihrani pomnilnik).

Razumevanje problema brez statične spremenljivke

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

Recimo, da je na moji fakulteti 500 študentov, bodo zdaj vsi podatkovni člani primerka dobili pomnilnik vsakič, ko je objekt ustvarjen. Vsi učenci imajo svoje edinstveno ime in ime, zato je podatkovni član primerka v tem primeru dober. Tukaj se 'fakultet' nanaša na skupno lastnino vseh predmetov . Če ga naredimo statičnega, bo to polje dobilo pomnilnik samo enkrat.

Statična lastnost Java je v skupni rabi za vse objekte.

Primer statične spremenljivke

 //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(); } } 
Preizkusite zdaj

Izhod:

 111 Karan ITS 222 Aryan ITS 

Program števca brez statične spremenljivke

V tem primeru smo ustvarili spremenljivko primerka z imenom count, ki se poveča v konstruktorju. Ker spremenljivka primerka dobi pomnilnik v času ustvarjanja objekta, bo imel vsak objekt kopijo spremenljivke primerka. Če se poveča, ne bo odražal drugih predmetov. Tako bo vsak predmet imel vrednost 1 v spremenljivki štetja.

 //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(); } } 
Preizkusite zdaj

Izhod:

preity zinta
 1 1 1 

Program števca po statični spremenljivki

Kot smo že omenili, bo statična spremenljivka dobila pomnilnik samo enkrat, če kateri koli objekt spremeni vrednost statične spremenljivke, bo ohranil svojo vrednost.

 //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(); } } 
Preizkusite zdaj

Izhod:

 1 2 3 

2) Statična metoda Java

Če uporabite statično ključno besedo s katero koli metodo, je to znano kot statična metoda.

  • Statična metoda pripada razredu in ne objektu razreda.
  • Statično metodo je mogoče priklicati brez potrebe po ustvarjanju primerka razreda.
  • Statična metoda lahko dostopa do statičnega podatkovnega člana in lahko spremeni njegovo vrednost.

Primer statične 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(); } } 
Preizkusite zdaj
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Še en primer statične metode, ki izvaja običajen 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); } } 
Preizkusite zdaj
 Output:125 

Omejitve za statično metodo

Za statično metodo obstajata dve glavni omejitvi. To so:

niz.podniz java
  1. Statična metoda ne more uporabiti nestatičnega podatkovnega člana ali neposredno poklicati nestatične metode.
  2. this in super ni mogoče uporabiti v statičnem kontekstu.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Preizkusite zdaj
 Output:Compile Time Error 

V) Zakaj je glavna metoda Jave statična?

Odgovor) To je zato, ker objektu ni treba poklicati statične metode. Če bi šlo za nestatično metodo, JVM najprej ustvari objekt in nato pokliče metodo main(), ki bo povzročila problem dodeljevanja dodatnega pomnilnika.


3) Statični blok Java

  • Uporablja se za inicializacijo statičnega podatkovnega člana.
  • Izvede se pred glavno metodo v času nalaganja razreda.

Primer statičnega bloka

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

V) Ali lahko izvajamo program brez metode main()?

Odgovor) Ne, eden od načinov je bil statični blok, vendar je bil možen do JDK 1.6. Od JDK 1.7 naprej ni mogoče izvesti razreda Java brez glavna metoda .

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

Izhod:

xor cpp
 static block is invoked 

Od JDK 1.7 in novejših bi bil izhod:

 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