Java – zmienna statyczna z przykładem

, Author

Zmienna statyczna jest wspólna dla wszystkich instancji (lub obiektów) klasy, ponieważ jest zmienną poziomu klasy. Innymi słowy można powiedzieć, że tylko jedna kopia zmiennej statycznej jest tworzona i dzielona między wszystkie instancje klasy. Alokacja pamięci dla takich zmiennych dzieje się tylko raz, gdy klasa jest ładowana do pamięci.
Jak zmienne możemy mieć statyczny blok, statyczną metodę i statyczną klasę, aby przeczytać o nich odnoszą się: statyczne słowo kluczowe w java.

Składnia zmiennej statycznej

statyczne słowo kluczowe, a następnie typ danych, a następnie nazwa zmiennej.

static data_type variable_name;

Jak wspomniałem powyżej, że zmienne statyczne są dzielone między wszystkie instancje klasy, są one przydatne, gdy musimy zrobić zarządzanie pamięcią. W niektórych przypadkach chcemy mieć wspólną wartość dla wszystkich instancji jak zmienna globalna, wtedy znacznie lepiej jest zadeklarować je jako statyczne, ponieważ może to zaoszczędzić pamięć (ponieważ tylko jedna kopia jest tworzona dla zmiennych statycznych).

lets understand this with an example:

Static variable example in 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

As you can see in the above example that both the objects are sharing a same copy of static variable that’s why they displayed the same value of count.

Przykład 2: Dostęp do zmiennej statycznej można uzyskać bezpośrednio w metodzie statycznej

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

Wyjście:

Age is: 30Name is: Steve

Inicjalizacja zmiennej statycznej

  1. Zmienne statyczne są inicjalizowane, gdy klasa jest ładowana.
  2. Zmienne statyczne są inicjalizowane przed utworzeniem jakiegokolwiek obiektu tej klasy.
  3. Zmienne statyczne są inicjalizowane przed wykonaniem jakiejkolwiek metody statycznej klasy.

Domyślne wartości dla zmiennych statycznych i niestatycznych są takie same.
prymitywne liczby całkowite (long, short itd.): 0
prymitywne liczby zmiennoprzecinkowe (float, double): 0.0
boolean: false
object references: null

Statyczne zmienne końcowe

Statyczne zmienne końcowe są stałymi. Spójrzmy na poniższy kod:

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

Uwaga: Nazwa zmiennej stałej powinna być napisana dużymi literami! Możesz użyć podkreślenia(_) pomiędzy nimi.
1) Powyższy kod wykona się zaraz po załadowaniu klasy MyClass, przed wywołaniem statycznej metody i nawet przed dostępem do jakiejkolwiek zmiennej statycznej.
2) Zmienna MY_VAR jest publiczna, co oznacza, że każda klasa może z niej korzystać. Jest to zmienna statyczna, więc nie będziesz potrzebował żadnego obiektu klasy, aby uzyskać do niej dostęp. Jest ostateczna, więc wartość tej zmiennej nigdy nie może być zmieniona w bieżącej klasie lub w jakiejkolwiek innej klasie.

Kluczowe punkty:
zmienna ostateczna zawsze wymaga inicjalizacji, jeśli jej nie zainicjalizujesz, wyrzuci błąd kompilacji. spójrz na poniższy przykład-

public class MyClass{ public static final int MY_VAR;}

Error: variable MY_VAR might not have been initialized

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.