Variabilă statică în Java
- Variabile statice
- Metode statice
- Blocuri statice de cod.
Să ne uităm mai întâi la variabilele statice și la metodele statice.
În ce este variabila statică Java?
Variabila statica in Java este variabilă care aparține clasei și inițializată o singură dată la începutul execuției. Este o variabilă care aparține clasei și nu obiectului (instanță). Variabilele statice sunt inițializate o singură dată, la începutul execuției. Aceste variabile vor fi inițializate mai întâi, înainte de inițializarea oricăror variabile de instanță.
- O singură copie care va fi partajată de toate instanțele clasei
- O variabilă statică poate fi accesată direct prin numele clasei și nu are nevoie de niciun obiect
Sintaxă:
<class-name>.<variable-name>
În ce este metoda statică Java?
Metoda statică în Java este o metodă care aparține clasei și nu obiectului. O metodă statică poate accesa numai date statice. Este o metodă care aparține clasei și nu obiectului (instanței). O metodă statică poate accesa numai date statice. Nu poate accesa date non-statice (variabile de instanta).
- O metodă statică poate apela numai alte metode statice și nu poate apela o metodă non-statică din ea.
- O metodă statică poate fi accesată direct prin numele clasei și nu are nevoie de niciun obiect
- O metodă statică nu se poate referi la cuvinte cheie „acest” sau „super” oricum
Sintaxă:
<class-name>.<method-name>
Notă: metoda principală este statică, deoarece trebuie să fie accesibilă pentru ca o aplicație să ruleze, înainte de a avea loc orice instanțiere.
Să învățăm nuanțele cuvintelor cheie statice făcând câteva exerciții!
Exemplu: Cum să apelați variabile și metode statice
Pas 1) Copiați următorul cod într-un editor
public class Demo{
public static void main(String args[]){
Student s1 = new Student();
s1.showData();
Student s2 = new Student();
s2.showData();
//Student.b++;
//s1.showData();
}
}
class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.
Student(){
//Constructor incrementing static variable b
b++;
}
public void showData(){
System.out.println("Value of a = "+a);
System.out.println("Value of b = "+b);
}
//public static void increment(){
//a++;
//}
}
Pas 2) Salvați și compilați codul. Rulați codul ca, java Demo.
Pas 3) Rezultatele așteptate sunt afișate mai jos
Următoarea diagramă arată cum sunt create variabilele și obiectele de referință și cum sunt accesate variabilele statice de către diferitele instanțe.
Pas 4) Este posibil să accesați o variabilă statică din afara clasei folosind sintaxa ClassName.Variable_Name. Anulați comentariile rândului # 7 și 8 . Salvați, compilați și rulați. Observați rezultatul.
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
Pas 5) Anulați comentariile rândului 25,26 și 27. Salvați, compilați și rulați.
error: non-static variable a cannot be referenced from a static context a++;
Pas 6) Eroare = ? Acest lucru se datorează faptului că nu este posibil să accesați variabila de instanță „a„din metoda clasei statice java”creştere".
În ce este blocul static Java?
bloc static este un bloc de declarație în interiorul unui Java clasă care va fi executată atunci când o clasă este încărcată pentru prima dată în FMV. O blocul static ajută la inițializarea membrilor datelor statice, la fel cum constructorii ajută la inițializarea membrilor instanței.
class Test{
static {
//Code goes here
}
}
Următorul program este exemplul de bloc static java.
Exemplu: Cum se accesează blocul static
public class Demo {
static int a;
static int b;
static {
a = 10;
b = 20;
}
public static void main(String args[]) {
System.out.println("Value of a = " + a);
System.out.println("Value of b = " + b);
}
}
veți obține următoarele rezultate ale programului.
Value of a = 10 Value of b = 20


