Statisk variabel i Java: Hvad er statisk blok og metode [Eksempel]

Det statiske kan være:

  1. Statiske variable
  2. Statiske metoder
  3. Statiske kodeblokke.

Lad os først se på statiske variable og statiske metoder.

Hvad er statisk variabel i Java?

Statisk variabel i Java er variabel, som hører til klassen og initialiseres kun én gang ved starten af ​​udførelsen. Det er en variabel, der tilhører klassen og ikke til objekt(instans). Statiske variable initialiseres kun én gang, ved starten af ​​udførelsen. Disse variable initialiseres først før initialiseringen af ​​eventuelle instansvariabler.

  • En enkelt kopi, der skal deles af alle forekomster af klassen
  • En statisk variabel kan tilgås direkte af klassenavnet og behøver ikke noget objekt

Syntaks:

<class-name>.<variable-name>

Hvad er statisk metode i Java?

Statisk metode i Java er en metode, der tilhører klassen og ikke til objektet. En statisk metode kan kun få adgang til statiske data. Det er en metode, der hører til klassen og ikke til objektet (instansen). En statisk metode kan kun få adgang til statiske data. Den kan ikke få adgang til ikke-statiske data (instansvariabler).

  • En statisk metode kan kun kalde andre statiske metoder og kan ikke kalde en ikke-statisk metode fra den.
  • En statisk metode kan tilgås direkte af klassenavnet og behøver ikke noget objekt
  • En statisk metode kan ikke på nogen måde referere til "dette" eller "super" søgeord

Syntaks:

<class-name>.<method-name>

Bemærk: hovedmetoden er statisk, da den skal være tilgængelig for at en applikation kan køre, før en instansiering finder sted.


Lad os lære nuancerne af de statiske nøgleord ved at lave nogle øvelser!

Eksempel: Sådan kalder du statiske variable og metoder

Trin 1) Kopier folloenwing kode ind i en editor

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++;
//}

}

Trin 2) Gem og kompilér koden. Kør koden som, java demo.

Trin 3) Forventet output vises nedenfor


Java statiske metoder og variabler

Following diagrammet viser, hvordan referencevariabler & objekter oprettes, og statiske variabler tilgås af de forskellige instanser.


Java statiske metoder og variabler

Trin 4) Det er muligt at få adgang til en statisk variabel uden for klassen ved hjælp af syntaksen Klassenavn.Variabel_navn. Fjern kommentar linje #7 og 8. Gem, kompilér og kør. Observer outputtet.

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

Trin 5) Fjern kommentar linje 25,26 & 27. Gem, kompilér og kør.

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

Trin 6) Fejl = ? Dette skyldes, at det ikke er muligt at få adgang til instansvariablen "a"fra java statisk klasse metode"tilvækst".

Hvad er statisk blok i Java?

statisk blok er en sætningsblok inde i en Java-klasse, der vil blive udført, når en klasse første gang indlæses i FMV. En statisk blok hjælper med at initialisere de statiske datamedlemmer, ligesom konstruktører hjælper med at initialisere instansmedlemmer.

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

Following programmet er eksemplet på java statisk blok.

Eksempel: Sådan får du adgang til statisk blok

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 får following output af programmet.

Value of a = 10
Value of b = 20