Staattinen muuttuja sisään Java

⚡ Älykäs yhteenveto

Staattinen muuttuja sisään Java kuuluu luokkaan eikä mihinkään olioon ja se alustetaan kerran luokan latautumisen yhteydessä. Yksi jaettu kopio palvelee kaikkia instansseja, ja siihen pääsee suoraan luokan nimen kautta ilman olion luomista.

  • 📦 Staattinen muuttuja: Kuuluu luokkaan, jakaa yhden kopion kaikkien instanssien kesken, alustetaan kerran latauksen yhteydessä.
  • ⚙️ Staattinen menetelmä: Kuuluu luokkaan, voi käyttää vain staattista dataa ja jättää tämän/super-muuttujasta huomiotta.
  • 🧱 Staattinen lohko: Suoritetaan kerran, kun luokka latautuu staattisten datajäsenten alustamiseksi.
  • 🔗 Access: Tavoita staattiset jäsenet suoraan ClassName.member-metodin kautta ilman oliota.
  • ⛔ rajoitus: Staattinen metodi ei voi viitata suoraan ei-staattisiin (instanssi)muuttujiin.

Staattinen muuttuja sisään Java

Staattinen voi olla:

  1. Staattiset muuttujat
  2. Staattiset menetelmät
  3. Staattiset lohkot Code.

Katsotaanpa ensin staattisia muuttujia ja staattisia menetelmiä.

Mitä staattinen muuttuja sisältää Java?

Staattinen muuttuja sisään Java on luokkaan kuuluva muuttuja, joka alustetaan vain kerran suorituksen alussa. Se on muuttuja, joka kuuluu luokkaan eikä objektiin (instanssiin). Staattiset muuttujat alustetaan vain kerran, suorituksen alussa. Nämä muuttujat alustetaan ensin, ennen instanssimuuttujien alustusta.

  • Yksi kopio, joka jaetaan luokan kaikille esiintymille
  • Staattiseen muuttujaan pääsee suoraan luokan nimen kautta, eikä se tarvitse mitään objektia

Syntaksi:

<class-name>.<variable-name>

Missä Static Method on Java?

Staattinen menetelmä sisään Java on menetelmä, joka kuuluu luokkaan eikä objektiin. Staattisella menetelmällä voidaan käyttää vain staattisia tietoja. Se on menetelmä, joka kuuluu luokkaan eikä objektiin (instanssi). Staattisella menetelmällä voidaan käyttää vain staattisia tietoja. Se ei voi käyttää ei-staattisia tietoja (instanssimuuttujat).

  • Staattinen menetelmä voi kutsua vain muita staattisia menetelmiä eikä voi kutsua ei-staattista menetelmää siitä.
  • Staattiseen metodiin pääsee suoraan luokan nimen kautta, eikä se tarvitse objektia
  • Staattinen menetelmä ei voi missään tapauksessa viitata "tähän" tai "super" avainsanoihin

Syntaksi:

<class-name>.<method-name>

Huomautus: päämenetelmä on staattinen, koska sen on oltava käytettävissä, jotta sovellus voi toimia, ennen kuin toteutus tapahtuu.

Opitaan staattisten avainsanojen vivahteet tekemällä harjoituksia!

Esimerkki: Staattisten muuttujien ja menetelmien kutsuminen

Vaihe 1) Kopioi seuraava koodi editoriin

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

}

Vaihe 2) Tallenna ja käännä koodi. Suorita koodi kuten java demo.

Vaihe 3) Odotettu tulos näyttää alla


Java Staattiset menetelmät ja muuttujat

Seuraava kaavio näyttää, kuinka viitemuuttujat ja -objektit luodaan ja miten eri esiintymät käyttävät staattisia muuttujia.


Java Staattiset menetelmät ja muuttujat

Vaihe 4) Staattiseen muuttujaan on mahdollista päästä käsiksi luokan ulkopuolelta syntaksin avulla ClassName.Variable_Name. Kommentoi rivit # 7 ja 8 . Tallenna, käännä ja suorita. Tarkkaile lähtöä.

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

Vaihe 5) Kommentoinnin poistaminen rivit 25,26 ja 27. Tallenna, käännä ja suorita.

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

Vaihe 6) Virhe =? Tämä johtuu siitä, että esiintymämuuttujaa ei ole mahdollista käyttääa" Java staattisen luokan menetelmästä "lisäys".

Mitä Static Block sisältää Java?

staattinen lohko on lausekelohko a:n sisällä Java luokka, joka suoritetaan, kun luokka ladataan ensimmäisen kerran JVM. staattinen lohko auttaa alustamaan staattiset datajäsenet, aivan kuten rakentajat auttavat instanssien jäsenten alustamisessa.

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

Seuraava ohjelma on esimerkki Java-staattisesta lohkosta.

Esimerkki: Staattisen lohkon käyttäminen

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

 	}
}

saat seuraavan ohjelman tulosteen.

Value of a = 10
Value of b = 20

UKK

Staattinen muuttuja kuuluu luokkaan ja sillä on yksi jaettu kopio kaikille objekteille. Instanssimuuttuja kuuluu jokaiselle objektille ja saa erillisen kopion instanssia kohden, ja se alustetaan objektin luonnin yhteydessä.

Ei. Staattinen metodi voi käyttää vain staattista dataa ja muita staattisia metodeja. Ei-staattiseen (instanssi)muuttujaan viittaaminen staattisesta kontekstista aiheuttaa käännösvirheen, koska objektia ei ole vielä olemassa.

Staattinen lohko suoritetaan kerran, kun luokka ladataan ensimmäisen kerran JVM:ään, ennen kuin mitään objektia luodaan tai päämetodi suoritetaan. Sitä käytetään staattisten datajäsenten alustamiseen.

Tekoäly voi analysoida kentän tai metodin käyttöä ja suositella staattista tilaa, kun dataa jaetaan kaikkien instanssien kesken tai instanssin tilaa ei tarvita.ping Kehittäjät välttävät tarpeettomia objekteja ja vähentävät muistin käyttöä.

Kyllä. Tekoälyavusteinen analyysi voi merkitä muuttuvan staattisen tilan, joka aiheuttaa säikeiden turvallisuusongelmia, piilotettuja globaaleja riippuvuuksia tai testausvaikeuksia, ja ehdottaa turvallisempia vaihtoehtoja, kuten instanssikenttiä tai riippuvuuksien injektointia.

Tiivistä tämä viesti seuraavasti: