Java – statikus változó példával

, Author

A statikus változó az osztály minden példánya (vagy objektuma) számára közös, mivel ez egy osztályszintű változó. Más szóval azt mondhatjuk, hogy a statikus változónak csak egyetlen példányát hozzuk létre, és azt osztjuk meg az osztály összes példánya között. Az ilyen változók memóriafoglalása csak egyszer történik meg, amikor az osztály betöltődik a memóriába.
A változókhoz hasonlóan statikus blokk, statikus metódus és statikus osztály is lehet, ezekről olvashatunk: static keyword in java.

Static variable Syntax

static keyword followed by data type, followed by variable name.

static data_type variable_name;

Mivel fentebb említettem, hogy a statikus változókat az osztály minden példánya megosztja, hasznosak, amikor memóriakezelést kell végeznünk. Bizonyos esetekben azt szeretnénk, hogy az összes példánynak közös értéke legyen, mint a globális változó, akkor sokkal jobb, ha statikusnak nyilvánítjuk őket, mivel így memóriát takaríthatunk meg (mert a statikus változóknál csak egyetlen másolat jön létre).

megértjük ezt egy példával:

Statikus változó példa Java-ban

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); }}

Kimenet:

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

Amint a fenti példában láthatjuk, hogy mindkét objektum a statikus változó egyazon példányát használja, ezért mutatták ki ugyanazt a számértéket.

2. példa: A statikus változót közvetlenül egy statikus metódusban lehet elérni

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(); }}

Kimenet:

Age is: 30Name is: Steve

Statikus változó inicializálása

  1. A statikus változókat az osztály betöltésekor inicializáljuk.
  2. A statikus változókat az adott osztály bármely objektumának létrehozása előtt inicializáljuk.
  3. A statikus változók inicializálása az osztály bármely statikus metódusának végrehajtása előtt történik.

A statikus és nem statikus változók alapértékei megegyeznek.
primitív egész számok(long, short stb.): 0
primitív lebegőpontok(float, double): 0.0
boolean: false
objektum hivatkozások: null

Statikus végleges változók

A statikus végleges változók konstansok. Nézzük meg az alábbi kódot:

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

Megjegyzés: A konstans változók nevének nagybetűsnek kell lennie! használhatsz aláhúzást(_) közöttük.
1) A fenti kód végrehajtódik, amint az osztály MyClass betöltődik, mielőtt a statikus metódus meghívásra kerül, és még mielőtt bármely statikus változót elérnénk.
2) A MY_VAR változó nyilvános, ami azt jelenti, hogy bármely osztály használhatja. Ez egy statikus változó, tehát nincs szükségünk semmilyen osztályobjektumra ahhoz, hogy hozzáférjünk hozzá. Ez végleges, tehát a változó értéke soha nem változtatható meg az aktuális vagy bármelyik osztályban.

Főbb pontok:
A végleges változó mindig inicializálásra szorul, ha nem inicializálod, akkor fordítási hibát dob. nézd meg az alábbi példát-

public class MyClass{ public static final int MY_VAR;}

Error: variable MY_VAR might not have been initialized

Error: variable MY_VAR might not have been initialized

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.