Java – statisk variabel med eksempel

, Author

En statisk variabel er fælles for alle instanser (eller objekter) af klassen, fordi det er en variabel på klasseniveau. Med andre ord kan man sige, at der kun oprettes en enkelt kopi af den statiske variabel, som deles mellem alle klassens instanser. Hukommelsesallokering til sådanne variabler sker kun én gang, når klassen indlæses i hukommelsen.
Som variabler kan vi have statisk blok, statisk metode og statisk klasse, for at læse om dem henvises til: static keyword in java.

Statisk variabel Syntaks

statisk nøgleord efterfulgt af datatype, efterfulgt af variabelnavn.

static data_type variable_name;

Som jeg nævnte ovenfor, at de statiske variabler deles blandt alle klassens instanser, er de nyttige, når vi skal foretage hukommelsesstyring. I nogle tilfælde ønsker vi at have en fælles værdi for alle instanser som globale variabler, så er det meget bedre at erklære dem statiske, da dette kan spare hukommelse (fordi der kun oprettes en enkelt kopi for statiske variabler).

Lad os forstå dette med et eksempel:

Statisk variabel eksempel i Java

class VariableDemo{ static int count=0; public void increment() { count++; } public static void main(String args) { VariableDemo obj1=new VariableDemo(); VariableDemo obj2=new VariableDemo(); obj1.increment(); obj2.increment(); System.out.println("Obj1: count is="+obj1.count); System.out.println("Obj2: count is="+obj2.count); }}

Output:

Obj1: count is=2Obj2: count is=2

Som du kan se i ovenstående eksempel, deler begge objekter den samme kopi af den statiske variabel, hvorfor de viste den samme værdi af count.

Eksempel 2: Statisk variabel kan tilgås direkte i en statisk metode

class JavaExample{ static int age; static String name; //This is a Static Method static void disp(){ System.out.println("Age is: "+age); System.out.println("Name is: "+name); } // This is also a static method public static void main(String args) { age = 30; name = "Steve"; disp(); }}

Output:

Age is: 30Name is: Steve

Initialisering af statiske variabler

  1. Statiske variabler initialiseres, når klassen indlæses.
  2. Statiske variabler initialiseres, før der oprettes et objekt af den pågældende klasse.
  3. Statiske variabler initialiseres, før en statisk metode i klassen udføres.

Defaultværdierne for statiske og ikke-statiske variabler er de samme.
primitive hele tal(long, short osv.): 0
primitive flydende punkter(float, double): 0.0
boolean: false
objektreferencer: null

Statiske endelige variabler

De statiske endelige variabler er konstanter. Lad os se på koden nedenfor:

public class MyClass{ public static final int MY_VAR=27;}

Bemærkning: Konstante variabelnavne skal være i Caps! du kan bruge understregning(_) imellem.
1) Ovenstående kode vil blive udført, så snart klassen MyClass er indlæst, før statisk metode kaldes, og endda før der kan tilgås nogen statisk variabel.
2) Variablen MY_VAR er offentlig, hvilket betyder, at enhver klasse kan bruge den. Det er en statisk variabel, så du behøver ikke noget objekt af klassen for at få adgang til den. Det er final, så værdien af denne variabel kan aldrig ændres i den aktuelle eller i nogen klasse.

Nøglepunkter:
final variabel har altid brug for initialisering, hvis du ikke initialisere det ville kaste en kompileringsfejl.Tag et kig på nedenstående eksempel-

public class MyClass{ public static final int MY_VAR;}

Error: variable MY_VAR might not have been initialized

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.