Wymagania wstępne : zmienne statyczne, słowo kluczowe final
Static variable: Kiedy wartość zmiennej nie jest zróżnicowana, wtedy nie jest to dobry wybór, aby przejść do zmiennej instancji. W tym czasie możemy dodać modyfikator static do tej zmiennej. Kiedykolwiek zadeklarujemy zmienną jako statyczną, wtedy na poziomie klasy tworzona jest pojedyncza zmienna, która jest współdzielona z obiektami. Każda zmiana w tej zmiennej statycznej odzwierciedla operacje na innych obiektach. Jeśli nie zainicjalizujemy zmiennej statycznej, wtedy domyślnie JVM dostarczy wartość domyślną dla zmiennej statycznej.
Ale kiedy zadeklarujemy zmienną statyczną z modyfikatorem final, wtedy powinniśmy zadbać o następujące konwencje:
- Deklarowanie zmiennych tylko jako statyczne może prowadzić do zmiany ich wartości przez jedną lub więcej instancji klasy, w której jest zadeklarowana.
- Deklarowanie ich jako statyczne final pomoże ci stworzyć CONSTANT. Istnieje tylko jedna kopia zmiennej, która nie może być ponownie zainicjalizowana.
Ważne punkty dotyczące ostatecznej zmiennej statycznej:
- Inicjalizacja zmiennej Obowiązkowa : Jeśli zmienna statyczna zadeklarowana jako ostateczna, to musimy wykonać inicjalizację jawnie, niezależnie od tego, czy jej używamy, czy nie, a JVM nie zapewni żadnej wartości domyślnej dla ostatecznej zmiennej statycznej.
classTest {finalstaticintx;publicstaticvoidmain(String args){}}Wyjście:
error: variable x not initialized in the default constructor
- Inicjalizacja przed załadowaniem klasy : Dla finalnej zmiennej statycznej, obowiązkowo powinniśmy wykonać inicjalizację przed zakończeniem ładowania klasy. Możemy zainicjować ostateczną zmienną statyczną w czasie deklaracji.
classTest {finalstaticintx =10;publicstaticvoidmain(String args){System.out.println(x);}}Wyjście:
10
- Inicjalizacja wewnątrz bloku statycznego : Możemy również zainicjować końcową zmienną statyczną wewnątrz bloku statycznego, ponieważ powinniśmy zainicjować końcową zmienną statyczną przed klasą i wiemy, że blok statyczny jest wykonywany przed metodą main().
classTest {finalstaticintx;static{x =10;}publicstaticvoidmain(String args){System.out.println(x);}}Wyjście:
10
Oprócz wyżej wymienionych metod, jeśli spróbujemy zainicjować finalną zmienną statyczną gdziekolwiek indziej, wtedy otrzymamy błąd czasu kompilacji.
class Test { final static int x; public static void m() { x = 10; } public static void main(String args) { System.out.println(x); } } Wyjście:
error: cannot assign a value to final variable x
Implementacja finalnej zmiennej statycznej
class MainClass { final static String company = "GFG"; String name; int rollno; public static void main(String args) { MainClass ob = new MainClass(); ob.company = "Geeksforgeeks"; ob.name = "Bishal"; ob.rollno = 007; System.out.println(ob.company); System.out.println(ob.name); System.out.println(ob.rollno); } } Wyjście:
error: cannot assign a value to final variable company
This article is contributed by Bishal Kumar Dubey. Jeśli podoba Ci się GeeksforGeeks i chciałbyś się przyczynić do jego powstania, możesz również napisać artykuł korzystając z adresu contribute.geeksforgeeks.org lub wysłać go pocztą na adres [email protected]. Zobacz, jak twój artykuł pojawia się na stronie głównej GeeksforGeeks i pomóż innym Geekom.