Statisk variabel inn Java

Det statiske kan være:

  1. Statiske variabler
  2. Statiske metoder
  3. Statiske blokker med kode.

La oss først se på statiske variabler og statiske metoder.

Hva er statisk variabel i Java?

Statisk variabel i Java er variabel som tilhører klassen og initialisert kun én gang ved starten av utførelsen. Det er en variabel som tilhører klassen og ikke til objekt (instans). Statiske variabler initialiseres bare én gang, ved starten av utførelsen. Disse variablene vil bli initialisert først, før initialisering av eventuelle forekomstvariabler.

  • En enkelt kopi som skal deles av alle forekomster av klassen
  • En statisk variabel kan nås direkte av klassenavnet og trenger ikke noe objekt

Syntaks:

<class-name>.<variable-name>

Hva er statisk metode i Java?

Statisk metode i Java er en metode som tilhører klassen og ikke til objektet. En statisk metode kan bare få tilgang til statiske data. Det er en metode som tilhører klassen og ikke til objektet (instansen). En statisk metode kan bare få tilgang til statiske data. Den kan ikke få tilgang til ikke-statiske data (instansvariabler).

  • En statisk metode kan bare kalle andre statiske metoder og kan ikke kalle en ikke-statisk metode fra den.
  • En statisk metode kan nås direkte av klassenavnet og trenger ikke noe objekt
  • En statisk metode kan uansett ikke referere til "dette" eller "super" søkeord

Syntaks:

<class-name>.<method-name>

OBS: hovedmetoden er statisk, siden den må være tilgjengelig for at en applikasjon skal kjøre, før noen instansiering finner sted.

La oss lære nyansene til de statiske nøkkelordene ved å gjøre noen øvelser!

Eksempel: Hvordan kalle statiske variabler og metoder

Trinn 1) Kopier følgende kode inn i et redigeringsprogram

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

Trinn 2) Lagre og kompiler koden. Kjør koden som, java demo.

Trinn 3) Forventet utgang vises nedenfor


Java Statiske metoder og variabler

Følgende diagram viser hvordan referansevariabler og objekter opprettes og statiske variabler er tilgjengelige for de forskjellige forekomstene.


Java Statiske metoder og variabler

Trinn 4) Det er mulig å få tilgang til en statisk variabel fra utenfor klassen ved å bruke syntaksen ClassName.Variable_Name. Fjern kommentar linje 7 og 8. Lagre, kompiler og kjør. Observer utgangen.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

Trinn 5) Ikke kommenter linje 25,26 og 27. Lagre, kompiler og kjør.

	 error: non-static variable a cannot be referenced from a static context a++; 

Trinn 6) Feil = ? Dette er fordi det ikke er mulig å få tilgang til instansvariabelen "a" fra java statisk klassemetode "tilvekst".

Hva er Static Block in Java?

Ocuco statisk blokk er en setningsblokk inne i en Java klasse som vil bli utført når en klasse først lastes inn i JVM. A statisk blokk hjelper til med å initialisere de statiske datamedlemmene, akkurat som konstruktører hjelper til med å initialisere forekomstmedlemmer.

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

Følgende program er eksempelet på java statisk blokk.

Eksempel: Hvordan få tilgang til statisk blokk

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

du vil få følgende utgang av programmet.

Value of a = 10
Value of b = 20

Oppsummer dette innlegget med: