Statička varijabla u Java

⚡ Pametni sažetak

Statička varijabla u Java pripada klasi, a ne bilo kojem objektu, te se inicijalizira jednom prilikom učitavanja klase. Jedna dijeljena kopija služi svim instancama, dostupna izravno putem naziva klase bez stvaranja objekta.

  • ???? Statička varijabla: Pripada klasi, dijeli jednu kopiju u svim instancama, inicijalizira se jednom pri učitavanju.
  • Statička metoda: Pripada klasi, može pristupiti samo statičkim podacima i ignorira this/super.
  • 🧱 Statički blok: Izvršava se jednom kada se klasa učita radi inicijalizacije statičkih članova podataka.
  • 🔗 Pristup: Dosegnite statičke članove izravno putem ClassName.member bez objekta.
  • Ograničenje: Statička metoda ne može izravno referencirati nestatičke (instančne) varijable.

Statička varijabla u Java

Statika može biti:

  1. Statičke varijable
  2. Statičke metode
  3. Statički blokovi od Code.

Pogledajmo prvo statičke varijable i statičke metode.

U čemu je statička varijabla Java?

Statička varijabla u Java je varijabla koja pripada klasi i inicijalizirana je samo jednom na početku izvršavanja. To je varijabla koja pripada klasi, a ne objektu (instanci). Statičke varijable inicijaliziraju se samo jednom, na početku izvršavanja. Ove varijable će biti inicijalizirane prve, prije inicijalizacije bilo kojih varijabli instance.

  • Jedna kopija koju će dijeliti sve instance klase
  • Statičkoj varijabli može se pristupiti izravno pomoću naziva klase i ne treba nikakav objekt

Sintaksa:

<class-name>.<variable-name>

U čemu je statička metoda Java?

Statička metoda u Java je metoda koja pripada klasi, a ne objektu. Statička metoda može pristupiti samo statičkim podacima. To je metoda koja pripada klasi, a ne objektu (instanci). Statička metoda može pristupiti samo statičkim podacima. Ne može pristupiti nestatičkim podacima (varijable instance).

  • Statička metoda može pozvati samo druge statičke metode i ne može iz nje pozvati nestatičku metodu.
  • Statičkoj metodi može se pristupiti izravno pomoću naziva klase i ne treba nikakav objekt
  • Statička metoda ne može upućivati ​​na ključne riječi "ovo" ili "super".

Sintaksa:

<class-name>.<method-name>

Bilješka: glavna metoda je statična, budući da mora biti dostupna da bi se aplikacija pokrenula, prije nego što se dogodi bilo kakva instancija.

Naučimo nijanse statičkih ključnih riječi radeći neke vježbe!

Primjer: Kako pozvati statičke varijable i metode

Korak 1) Kopirajte sljedeći kod u 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++;
//}

}

Korak 2) Spremite i kompajlirajte kod. Pokrenite kôd kao, java Demo.

Korak 3) Očekivani rezultat prikazan je u nastavku


Java Statičke metode i varijable

Sljedeći dijagram pokazuje kako se kreiraju referentne varijable i objekti i kako različite instance pristupaju statičkim varijablama.


Java Statičke metode i varijable

Korak 4) Moguće je pristupiti statičkoj varijabli izvan klase pomoću sintakse Naziv klase.Naziv_varijable. Odkomentirajte retke # 7 i 8. Spremi, prevedi i pokreni. Promatrajte izlaz.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

Korak 5) Odkomentirajte retke 25,26, 27 i XNUMX. Spremi, prevedi i pokreni.

	 error: non-static variable a cannot be referenced from a static context a++; 

Korak 6) Greška = ? To je zato što nije moguće pristupiti varijabli instance "a” iz metode statičke java klase “povećanje".

U čemu je Static Block Java?

The statički blok je blok iskaza unutar a Java klasa koja će se izvršiti kada se klasa prvi put učita u JVM. statički blok pomaže inicijalizirati članove statičkih podataka, baš kao što konstruktori pomažu inicijalizirati članove instance.

class Test{
 static {
 //Code goes here
 }
}

Sljedeći program je primjer statičkog bloka Java.

Primjer: Kako pristupiti statičkom bloku

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

 	}
}

dobit ćete sljedeći izlaz programa.

Value of a = 10
Value of b = 20

Pitanja i odgovori

Statička varijabla pripada klasi i ima jednu zajedničku kopiju za sve objekte. Varijabla instance pripada svakom objektu i dobiva zasebnu kopiju po instanci, inicijaliziranu prilikom stvaranja objekta.

Ne. Statička metoda može pristupiti samo statičkim podacima i drugim statičkim metodama. Pozivanje nestatičke (instančne) varijable iz statičkog konteksta uzrokuje pogrešku kompajliranja jer još ne postoji objekt.

Statički blok se izvršava jednom, kada se klasa prvi put učita u JVM, prije nego što se kreira bilo koji objekt ili se pokrene glavna metoda. Koristi se za inicijalizaciju statičkih članova podataka.

Umjetna inteligencija može analizirati kako se polje ili metoda koristi i preporučiti statički način rada kada se podaci dijele između svih instanci ili nije potrebno stanje instance, helpping programeri izbjegavaju nepotrebne objekte i smanjuju korištenje memorije.

Da. Analiza potpomognuta umjetnom inteligencijom može označiti promjenjivo statično stanje koje uzrokuje probleme s sigurnošću niti, skrivene globalne ovisnosti ili poteškoće s testiranjem te predložiti sigurnije alternative poput polja instance ili ubrizgavanja ovisnosti.

Sažmite ovu objavu uz: