Statische variabele in Java
- Statische variabelen
- Statische methoden
- Statische codeblokken.
Laten we eerst eens 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(instance ). Statische variabelen worden slechts één keer geïnitialiseerd, aan het begin van de uitvoering. Deze variabelen worden eerst geïnitialiseerd, vóór de initialisatie van eventuele instantievariabelen.
- Eén exemplaar dat door alle instanties van de klasse moet worden gedeeld
- Een statische variabele is rechtstreeks toegankelijk via de klassenaam en heeft geen enkel object nodig
Syntax:
<class-name>.<variable-name>
Wat is statische methode? Java?
Statische methode in Java is een methode die tot de klasse behoort en niet tot het object. Een statische methode heeft alleen toegang tot statische gegevens. Het is een methode die tot de klasse behoort en niet tot het object (instance). 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 oproepen.
- Een statische methode is rechtstreeks toegankelijk via de klassenaam en heeft geen enkel object nodig
- Een statische methode kan hoe dan ook niet verwijzen naar de trefwoorden 'dit' of 'super'
Syntax:
<class-name>.<method-name>
Opmerking: De main-methode is statisch, omdat deze toegankelijk moet zijn voordat een toepassing kan worden uitgevoerd voordat er een instantiatie plaatsvindt.
Laten we de nuances van de statische trefwoorden leren door enkele oefeningen te doen!
Voorbeeld: hoe u statische variabelen en methoden aanroept
Stap 1) Kopieer de volgende code in 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 wordt hieronder weergegeven
Het onderstaande diagram laat zien hoe referentievariabelen en -objecten worden gemaakt en hoe statische variabelen door de verschillende instanties worden benaderd.
Stap 4) Het is mogelijk om toegang te krijgen tot een statische variabele van buiten de klasse met behulp van de syntaxis Klassenaam. Variabele_naam. Verwijder commentaarregel # 7 en 8. Opslaan, compileren en uitvoeren. Observeer de uitvoer.
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) Verwijder commentaarregel 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 de instantievariabele “a"van Java statische klassenmethode"aanwas'.
Wat is een statisch blok? Java?
Ocuco's Medewerkers statisch blok is een blok met instructies binnen a Java klasse die wordt uitgevoerd wanneer een klasse voor het eerst in de JVM. Een statisch blok helpt bij het initialiseren van de statische gegevensleden, net zoals constructors helpen bij het initialiseren van instantieleden.
class Test{ static { //Code goes here } }
Het volgende programma is een voorbeeld van een statisch Java-blok.
Voorbeeld: toegang krijgen tot een 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 het volgende resultaat van het programma.
Value of a = 10 Value of b = 20