Statisk variabel inn Java
- Statiske variabler
- Statiske metoder
- 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
Fรธlgende diagram viser hvordan referansevariabler og objekter opprettes og statiske variabler er tilgjengelige for de forskjellige forekomstene.
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


