Precondiții: variabile statice, cuvânt cheie final
Variabilă statică: Atunci când valoarea unei variabile nu variază, atunci nu este o alegere bună să se opteze pentru o variabilă de instanță. În acest moment, putem adăuga modificatorul static la această variabilă. Ori de câte ori declarăm o variabilă ca fiind statică, atunci la nivelul clasei este creată o singură variabilă care este partajată cu obiectele. Orice modificare în această variabilă statică se reflectă în operațiunile celorlalte obiecte. Dacă nu inițializăm o variabilă statică, atunci, în mod implicit, JVM va furniza o valoare implicită pentru variabila statică.
Dar atunci când declarăm o variabilă statică cu modificatorul final, atunci trebuie să avem grijă de următoarele convenții:
- Declararea variabilelor doar ca statice poate duce la modificarea valorilor lor de către una sau mai multe instanțe ale clasei în care este declarată.
- Declararea lor ca statică finală vă va ajuta să creați o CONSTANTĂ. Există o singură copie a variabilei care nu poate fi reinitializată.
Puncturi importante despre variabilele statice finale:
- Inițializarea variabilei Obligatoriu : Dacă variabila statică este declarată ca finală, atunci trebuie să efectuăm inițializarea în mod explicit, indiferent dacă o folosim sau nu, iar JVM nu va furniza nicio valoare implicită pentru variabila statică finală.
class
Test {
final
static
int
x;
public
static
void
main(String args)
{
}
}
Scoate:
error: variable x not initialized in the default constructor
- Inițializare înainte de încărcarea clasei : Pentru variabilele statice finale, este obligatoriu să efectuăm inițializarea înainte de finalizarea încărcării clasei. Putem inițializa o variabilă statică finală în momentul declarării.
class
Test {
final
static
int
x =
10
;
public
static
void
main(String args)
{
System.out.println(x);
}
}
Succesiune:
10
- Inițializare în interiorul unui bloc static : Putem, de asemenea, să inițializăm o variabilă statică finală în interiorul unui bloc static, deoarece ar trebui să inițializăm o variabilă statică finală înainte de clasă și știm că blocul static este executat înainte de metoda main().
class
Test {
final
static
int
x;
static
{
x =
10
;
}
public
static
void
main(String args)
{
System.out.println(x);
}
}
Succesiune:
10
În afară de metodele menționate mai sus, dacă încercăm să inițializăm o variabilă statică finală în altă parte, atunci vom primi o eroare de compilare.
class
Test {
final
static
int
x;
public
static
void
m()
{
x =
10
;
}
public
static
void
main(String args)
{
System.out.println(x);
}
}
Succesiune:
error: cannot assign a value to final variable x
Implementarea variabilei statice finale
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);
}
}
Succesiune:
error: cannot assign a value to final variable company
Acest articol este realizat de Bishal Kumar Dubey. Dacă vă place GeeksforGeeks și doriți să contribuiți, puteți, de asemenea, să scrieți un articol folosind contribute.geeksforgeeks.org sau să trimiteți articolul prin poștă la [email protected]. Vedeți articolul dumneavoastră apărând pe pagina principală GeeksforGeeks și ajutați alți Geeks.
.