Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Statische variabele in Java:wat is statisch blok en methode [voorbeeld]

De statische kan zijn:

  1. Statische variabelen
  2. Statische methoden
  3. Statische codeblokken.

Laten we eerst kijken naar statische variabelen en statische methoden.

Wat is een statische variabele in Java?

Statische variabele in Java is een variabele die tot de klasse behoort en slechts één keer wordt geïnitialiseerd aan het begin van de uitvoering. Het is een variabele die tot de klasse behoort en niet tot object (instantie ). Statische variabelen worden slechts eenmaal geïnitialiseerd, aan het begin van de uitvoering. Deze variabelen worden eerst geïnitialiseerd, voordat eventuele instantievariabelen worden geïnitialiseerd.

  • Een enkele kopie die door alle instanties van de klas moet worden gedeeld
  • Een statische variabele is direct toegankelijk via de klassenaam en heeft geen object nodig

Syntaxis:

<class-name>.<variable-name>

Wat is een statische methode in Java?

Statische methode in Java is een methode die bij de klasse hoort en niet bij het object. Een statische methode heeft alleen toegang tot statische gegevens. Het is een methode die bij de klasse hoort en niet bij het object (instantie). Een statische methode heeft alleen toegang tot statische gegevens. Het heeft geen toegang tot niet-statische gegevens (instantievariabelen).

  • Een statische methode kan alleen andere statische methoden aanroepen en kan er geen niet-statische methode van aanroepen.
  • Een statische methode is direct toegankelijk via de klassenaam en heeft geen object nodig
  • Een statische methode kan hoe dan ook niet verwijzen naar "dit" of "super" trefwoorden

Syntaxis:

<class-name>.<method-name>

Opmerking: main-methode is statisch, omdat deze toegankelijk moet zijn voor een toepassing om te kunnen worden uitgevoerd, voordat er een instantie wordt gestart.


Laten we de nuances van de statische zoekwoorden leren door enkele oefeningen te doen!

Voorbeeld:statische variabelen en methoden aanroepen

Stap 1) Kopieer de volgende code naar een 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++;
//}

}

Stap 2) Bewaar en compileer de code. Voer de code uit als, java-demo .

Stap 3) Verwachte output zie hieronder

Het volgende diagram laat zien hoe referentievariabelen en objecten worden gemaakt en statische variabelen worden benaderd door de verschillende instanties.

Stap 4) Het is mogelijk om toegang te krijgen tot een statische variabele van buiten de klasse met behulp van de syntaxis ClassName.Variable_Name . Uncomment regel # 7 &8 . Opslaan, compileren en uitvoeren. Observeer de output.

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

Stap 5) Uncomment regel 25,26 &27 . Opslaan, compileren en uitvoeren.

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

Stap 6) Fout =? Dit komt omdat het niet mogelijk is om toegang te krijgen tot instantievariabele "a ” van java statische klassenmethode “increment “.

Wat is statisch blok in Java?

Het statische blok is een instructieblok in een Java-klasse die wordt uitgevoerd wanneer een klasse voor het eerst in de JVM wordt geladen. Een statisch blok helpt bij het initialiseren van de statische gegevensleden , net zoals constructors helpen om instantieleden te initialiseren.

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

Het volgende programma is het voorbeeld van een statisch Java-blok.

Voorbeeld:toegang krijgen tot statisch blok

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

 	}
}

u krijgt de volgende uitvoer van het programma.

Value of a = 10
Value of b = 20

Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java geneste statische klasse
  4. Java anonieme klasse
  5. Java Singleton-klasse
  6. Java-reflectie
  7. Afhandeling van Java-uitzonderingen
  8. Java ObjectOutputStream-klasse
  9. Java-generieken
  10. Java-bestandsklasse
  11. Interface versus abstracte klasse in Java:wat is het verschil?