Statisk variabel in Java
- Statiska variabler
- Statiska metoder
- Statiska block av kod.
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 initieras endast en gรฅng i bรถrjan av exekveringen. Det รคr en variabel som tillhรถr klassen och inte till object(instance ). Statiska variabler initieras endast en gรฅng, i bรถrjan av exekveringen. Dessa variabler kommer att initieras fรถrst, innan initieringen av eventuella instansvariabler.
- En enda kopia som ska delas av alla instanser i klassen
- En statisk variabel kan nรฅs direkt av klassnamnet och behรถver inget objekt
Syntax:
<class-name>.<variable-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 kan endast komma รฅt statisk data. Det รคr en metod som tillhรถr klassen och inte till objektet (instansen). En statisk metod kan endast komma รฅt statisk data. Den kan inte komma รฅt icke-statisk data (instansvariabler).
- En statisk metod kan endast anropa andra statiska metoder och kan inte anropa en icke-statisk metod frรฅn den.
- En statisk metod kan nรฅs direkt av klassnamnet och behรถver inget objekt
- En statisk metod kan inte hรคnvisa till "detta" eller "super" nyckelord pรฅ nรฅgot sรคtt
Syntax:
<class-name>.<method-name>
Obs: huvudmetoden รคr statisk, eftersom den mรฅste vara tillgรคnglig fรถr att en applikation ska kunna kรถras, innan nรฅgon instansiering รคger rum.
Lรฅt oss lรคra oss nyanserna av de statiska nyckelorden genom att gรถra nรฅgra รถvningar!
Exempel: Hur man anropar statiska variabler & metoder
Steg 1) Kopiera fรถljande kod till 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++;
//}
}
Steg 2) Spara och kompilera koden. Kรถr koden som, java demo.
Steg 3) Fรถrvรคntad utgรฅng visas nedan
Fรถljande diagram visar hur referensvariabler & objekt skapas och statiska variabler nรฅs av de olika instanserna.
Steg 4) Det รคr mรถjligt att komma รฅt en statisk variabel frรฅn utanfรถr klassen med hjรคlp av syntaxen ClassName.Variable_Name. Avkommentera rad #7 & 8. Spara, kompilera och kรถr. Observera utgรฅngen.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
Steg 5) Avkommentera rad 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 รคr mรถjligt att komma รฅt instansvariabeln "a"frรฅn java static class method"รถkning".
Vad รคr Static Block in Java?
Ocuco-landskapet statiskt block รคr ett block av uttalande inuti en Java klass som kommer att kรถras nรคr en klass fรถrst laddas in i JVM. En 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 ett exempel pรฅ java statiskt block.
Exempel: Hur man kommer รฅt statiskt block
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 kommer att fรฅ fรถljande utdata frรฅn programmet.
Value of a = 10 Value of b = 20


