Statisk Java-metod, variabel och block med exempel

Innehållsförteckning:

Anonim

Det statiska kan vara:

  1. Statiska variabler
  2. Statiska metoder
  3. Statiska kodblock.

Låt oss först titta på statiska variabler och statiska metoder.

Vad är statisk variabel i Java?

Statisk variabel i Java är variabel som tillhör klassen och initialiseras bara en gång i början av körningen. Det är en variabel som tillhör klassen och inte till objekt (instans). Statiska variabler initialiseras bara en gång i början av körningen. Dessa variabler initialiseras först innan initialiseringen av eventuella instansvariabler.

  • En enda kopia som ska delas av alla instanser i klassen
  • En statisk variabel kan nås direkt med klassnamnet och behöver inget objekt

Syntax:

< class-name>. 

Vad är statisk metod i Java?

Statisk metod i Java är en metod som tillhör klassen och inte till objektet. En statisk metod har endast åtkomst till statisk data. Det är en metod som tillhör klassen och inte till objektet (instans). En statisk metod har endast åtkomst till statisk data. Den kan inte komma åt icke-statisk data (instansvariabler).

  • En statisk metod kan bara anropa andra statiska metoder och kan inte anropa en icke-statisk metod från den.
  • En statisk metod kan nås direkt med klassnamnet och behöver inget objekt
  • En statisk metod kan ändå inte hänvisa till "detta" eller "super" nyckelord

Syntax:

< class-name>. 

Obs! Huvudmetoden är statisk eftersom den måste vara tillgänglig för att en applikation ska kunna köras innan någon instantiering äger rum.

Låt oss lära oss nyanserna i de statiska nyckelorden genom att göra några övningar!

Exempel: Hur man anropar statiska variabler och metoder

Steg 1) Kopiera följande kod till en redigerare

offentlig klass Demo {public static void main (String args []) {Student s1 = ny student ();s1.showData ();Student s2 = ny student ();s2.showData ();//Student.b++;//s1.showData ();}}klass Student {int a; // initialiserat till nollstatisk int b; // initialiseras till noll endast när klass laddas inte för varje objekt som skapas.Studerande(){// Konstruktör som ökar den statiska variabeln bb ++;}public void showData () {System.out.println ("Value of a =" + a);System.out.println ("Värde för b =" + b);}// offentlig statisk tomrumsökning () {// a ++;//}}

Steg 2) Spara och kompilera koden. Kör koden som, java Demo .
Steg 3) Förväntad produktion visas nedan


Följande diagram visar hur referensvariabler och objekt skapas och statiska variabler nås av olika instanser.


Steg 4) Det är möjligt att komma åt en statisk variabel utanför klassen med syntaxen ClassName.Variable_Name . Kommentarrad # 7 & 8. Spara, kompilera och kör. Observera utdata.

Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3
Steg 5) Kommentarrad 25,26 & 27. Spara, kompilera och kör.
error: non-static variable a cannot be referenced from a static context a++;

Steg 6) Fel =? Detta beror på att det inte går att komma åt instansvariabeln " a " från java statisk klassmetod " inkrement ".

Vad är Static Block i Java?

Det statiska blocket är ett satsblock i en Java-klass som kommer att köras när en klass först laddas in i JVM. Ett statiskt block hjälper till att initiera de statiska datamedlemmarna , precis som konstruktörer hjälper till att initiera instansmedlemmar.

class Test{static {//Code goes here}}

Följande program är exemplet på java static block.

Exempel: Hur man kommer åt statiskt block

offentlig klass Demo {statisk int a;statisk int b;statisk {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Value of a =" + a);System.out.println ("Värde för b =" + b);}}

du får följande resultat av programmet.

Value of a = 10Value of b = 20