Statikus változó be Java

⚡ Okos összefoglaló

Statikus változó be Java az osztályhoz tartozik, nem pedig valamelyik objektumhoz, és egyszer inicializálódik az osztály betöltésekor. Egyetlen megosztott példány szolgálja ki az összes példányt, amely közvetlenül az osztály nevén keresztül érhető el objektum létrehozása nélkül.

  • 📦 Statikus változó: Az osztályhoz tartozik, egy példányt megoszt az összes példány között, betöltéskor egyszer inicializálódik.
  • 🇧🇷 Statikus módszer: Az osztályhoz tartozik, csak statikus adatokhoz férhet hozzá, és figyelmen kívül hagyja ezt a/super osztályt.
  • 🧱 Statikus blokk: Egyszer fut le, amikor az osztály betöltődik a statikus adattagok inicializálásához.
  • 🔗 Access: Statikus tagok közvetlen elérése a ClassName.member segítségével objektum nélkül.
  • ⛔ Korlátozás: Egy statikus metódus nem hivatkozhat közvetlenül nem statikus (példány) változókra.

Statikus változó be Java

A statikus lehet:

  1. Statikus változók
  2. Statikus módszerek
  3. Statikus blokkok Code.

Nézzük először a statikus változókat és a statikus módszereket.

Miben található a statikus változó? Java?

Statikus változó be Java egy változó, amely az osztályhoz tartozik, és csak egyszer inicializálódik a végrehajtás elején. Ez egy olyan változó, amely az osztályhoz tartozik, és nem az objektumhoz (példányhoz). A statikus változók csak egyszer inicializálódnak, a végrehajtás elején. Ezek a változók inicializálódnak először, a példányváltozók inicializálása előtt.

  • Egyetlen példány, amelyet az osztály összes példánya megoszthat
  • A statikus változó közvetlenül elérhető az osztálynévvel, és nincs szüksége objektumra

Syntax:

<class-name>.<variable-name>

Miben található a Static Method Java?

Statikus módszer in Java egy metódus, amely az osztályhoz tartozik és nem az objektumhoz. A statikus metódusok csak statikus adatokhoz férhetnek hozzá. Ez egy olyan metódus, amely az osztályhoz tartozik, és nem az objektumhoz (példányhoz). A statikus metódusok csak statikus adatokhoz férhetnek hozzá. Nem tud hozzáférni a nem statikus adatokhoz (Példányváltozók).

  • A statikus metódusok csak más statikus metódusokat hívhatnak, nem statikus metódusokat nem.
  • A statikus metódusok közvetlenül elérhetők az osztálynévvel, és nincs szükségük objektumra
  • Egy statikus metódus semmiképpen sem hivatkozhat „ez” vagy „szuper” kulcsszavakra

Syntax:

<class-name>.<method-name>

Jegyzet: A fő metódus statikus, mivel az alkalmazás futtatásához elérhetőnek kell lennie, mielőtt bármilyen példányosítás megtörténik.

Tanuljuk meg a statikus kulcsszavak árnyalatait néhány gyakorlat elvégzésével!

Példa: Statikus változók és metódusok meghívása

Step 1) Másolja be a következő kódot egy szerkesztőbe

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++;
//}

}

Step 2) Mentse és fordítsa le a kódot. Futtassa a kódot, mint java demó.

Step 3) A várt kimenet alább látható


Java Statikus módszerek és változók

A következő diagram bemutatja, hogyan jönnek létre a referenciaváltozók és objektumok, és hogyan érhetők el a statikus változók a különböző példányok által.


Java Statikus módszerek és változók

Step 4) A szintaxis segítségével az osztályon kívülről is elérhető egy statikus változó ClassName.Variable_Name. Megjegyzés: 7. és 8. sor. Mentés, fordítás és futtatás. Figyelje meg a kimenetet.

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

Step 5) 25,26., 27. és XNUMX. sor. Mentés, fordítás és futtatás.

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

Step 6) Hiba = ? Ennek az az oka, hogy nem érhető el a "példányváltozó"a" a java static class metódusából "növekedés".

Mit tartalmaz a statikus blokk? Java?

Az statikus blokk egy utasításblokk az a-n belül Java osztály, amely akkor kerül végrehajtásra, amikor egy osztályt először betöltenek a JVM. A statikus blokk segít a statikus adattagok inicializálásában, ahogyan a konstruktorok is segítenek a példánytagok inicializálásában.

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

A következő program a java statikus blokk példája.

Példa: Hogyan lehet elérni a statikus blokkot

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

 	}
}

a program következő kimenetét kapja meg.

Value of a = 10
Value of b = 20

GYIK

Egy statikus változó az osztályhoz tartozik, és egyetlen megosztott másolattal rendelkezik minden objektum számára. Egy példányváltozó minden objektumhoz tartozik, és példányonként külön másolatot kap, amely az objektum létrehozásakor inicializálódik.

Nem. Egy statikus metódus csak statikus adatokhoz és más statikus metódusokhoz férhet hozzá. Egy nem statikus (példány) változóra való hivatkozás statikus kontextusból fordítási hibát okoz, mivel még nem létezik objektum.

Egy statikus blokk egyszer fut le, amikor az osztály először betöltődik a JVM-be, mielőtt bármilyen objektum létrejönne vagy a main metódus lefutna. A statikus adattagok inicializálására szolgál.

A mesterséges intelligencia elemezheti egy mező vagy metódus használatát, és statikus állapotot javasolhat, ha az adatok minden példány között megoszlanak, vagy nincs szükség példányállapotra.ping A fejlesztők kerülik a felesleges objektumokat és csökkentik a memóriahasználatot.

Igen. A mesterséges intelligencia által támogatott elemzés képes megjelölni a módosítható statikus állapotokat, amelyek szálbiztonsági problémákat, rejtett globális függőségeket vagy tesztelési nehézségeket okoznak, és biztonságosabb alternatívákat javasolhat, például példánymezőket vagy függőségek injekcióját.

Foglald össze ezt a bejegyzést a következőképpen: