Statikus változó be Java

A statikus lehet:

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

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 változó, amely az osztályhoz tartozik, és csak egyszer inicializálódik a végrehajtás kezdetén. Ez egy változó, amely az osztályhoz tartozik, és nem az objektumhoz (példány). A statikus változók csak egyszer, a végrehajtás kezdetén inicializálódnak. Ezeket a változókat a rendszer először inicializálja, mielőtt bármely példányváltozó inicializálódik.

  • 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?

A 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