Java – statická proměnná s příkladem

, Author

Statická proměnná je společná pro všechny instance (nebo objekty) třídy, protože se jedná o proměnnou na úrovni třídy. Jinými slovy lze říci, že je vytvořena pouze jedna kopie statické proměnné, která je společná pro všechny instance třídy. K alokaci paměti pro takové proměnné dochází pouze jednou při načtení třídy do paměti.
Stejně jako proměnné můžeme mít i statický blok, statickou metodu a statickou třídu, o kterých se dočtete na: static keyword in java.

Syntaxe statické proměnné

statické klíčové slovo, za kterým následuje datový typ a za ním název proměnné.

static data_type variable_name;

Jak jsem se zmínil výše, statické proměnné jsou sdílené mezi všemi instancemi třídy, jsou užitečné, když potřebujeme provést správu paměti. V některých případech chceme mít společnou hodnotu pro všechny instance jako globální proměnná, pak je mnohem lepší deklarovat je jako statické, protože tím můžeme ušetřit paměť (protože u statických proměnných se vytváří pouze jedna kopie).

pochopíme to na příkladu:

Příklad statické proměnné v Javě

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

Výstup:

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

Jak vidíte ve výše uvedeném příkladu, oba objekty sdílejí stejnou kopii statické proměnné, proto zobrazují stejnou hodnotu počtu.

Příklad 2: Ke statické proměnné lze přistupovat přímo ve statické 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(); }}

Výstup:

Age is: 30Name is: Steve

Inicializace statické proměnné

  1. Statické proměnné se inicializují při načítání třídy.
  2. Statické proměnné se inicializují před vytvořením jakéhokoli objektu této třídy.
  3. Statické proměnné jsou inicializovány před vykonáním jakékoli statické metody třídy.

Výchozí hodnoty statických a nestatických proměnných jsou stejné.
primitivní celá čísla(long, short atd.): 0
primitivní plovoucí čárky(float, double): 0.0
boolean: false
objektové reference: null

Statické koncové proměnné

Statické koncové proměnné jsou konstanty. Podívejme se na následující kód:

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

Poznámka: Název konstantní proměnné by měl být v Caps! mezi nimi můžete použít podtržítko(_).
1) Výše uvedený kód se provede, jakmile je načtena třída MyClass, před voláním statické metody a dokonce před přístupem k jakékoliv statické proměnné.
2) Proměnná MY_VAR je veřejná, což znamená, že ji může použít jakákoliv třída. Je to statická proměnná, takže k přístupu k ní nebudete potřebovat žádný objekt třídy. Je konečná, takže hodnotu této proměnné nelze nikdy změnit v aktuální ani v žádné jiné třídě.

Klíčové body:
konečná proměnná vždy vyžaduje inicializaci, pokud byste ji neinicializovali, vyhodila by chybu kompilace. podívejte se na následující příklad-

public class MyClass{ public static final int MY_VAR;}

Error: variable MY_VAR might not have been initialized

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.