Statisk variabel i Java
- Statiske variable
- Statiske metoder
- 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 fรธlgende 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
Fรธlgende diagram viser, hvordan referencevariabler og -objekter oprettes, og statiske variabler tilgรฅs af de forskellige forekomster.
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 blokering Java?
statisk blok er en udsagnsblok 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
}
}
Fรธlgende program er eksemplet med 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 vil fรฅ fรธlgende output af programmet.
Value of a = 10 Value of b = 20


