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