Java – statisk variabel med exempel

, Author

En statisk variabel är gemensam för alla instanser (eller objekt) av klassen eftersom det är en variabel på klassnivå. Med andra ord kan man säga att endast en enda kopia av den statiska variabeln skapas och delas mellan alla instanser av klassen. Minnesallokering för sådana variabler sker bara en gång när klassen laddas i minnet.
Likt variabler kan vi ha statiska block, statisk metod och statisk klass, för att läsa om dem se: static keyword in java.

Statisk variabel Syntax

statiskt nyckelord följt av datatyp, följt av variabelnamn.

static data_type variable_name;

Som jag nämnde ovan att statiska variabler delas av alla instanser av klassen, är de användbara när vi behöver göra minneshantering. I vissa fall vill vi ha ett gemensamt värde för alla instanser, t.ex. en global variabel, och då är det mycket bättre att deklarera dem som statiska eftersom detta kan spara minne (eftersom endast en enda kopia skapas för statiska variabler).

Vi kan förstå detta med ett exempel:

Statisk variabel exempel 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 exemplet ovan delar båda objekten samma kopia av den statiska variabeln, vilket är anledningen till att de visar samma värde på antal.

Exempel 2: Statisk variabel kan nås direkt i en statisk metod

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 av statiska variabler

  1. Statiska variabler initialiseras när klassen laddas.
  2. Statiska variabler initialiseras innan något objekt av den klassen skapas.
  3. Statiska variabler initialiseras innan någon statisk metod i klassen exekveras.

Standardvärden för statiska och icke-statiska variabler är desamma.
Primitive integers(long, short etc): 0
Primitive floating points(float, double): 0.0
boolean: false
objektreferenser: null

Statiska slutvariabler

De statiska slutvariablerna är konstanter. Låt oss ta en titt på koden nedan:

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

Notera: Namnet på den konstanta variabeln ska stå i Caps! du kan använda understrykning (_) mellan dem.
1) Ovanstående kod kommer att exekveras så snart klassen MyClass laddas, innan statiska metoder anropas och även innan någon statisk variabel kan nås.
2) Variabeln MY_VAR är offentlig, vilket innebär att vilken klass som helst kan använda den. Det är en statisk variabel så du behöver inget objekt av klassen för att få tillgång till den. Den är final så värdet av denna variabel kan aldrig ändras i den aktuella eller i någon klass.

Nyckelpunkter:
finalvariabeln behöver alltid initialiseras, om du inte initialiserar den skulle den kasta ett kompileringsfel.Ta en titt på nedanstående exempel-

public class MyClass{ public static final int MY_VAR;}

Error: variable MY_VAR might not have been initialized

.

Lämna ett svar

Din e-postadress kommer inte publiceras.