Junior
Wat betekent het sleutelwoord 'static' in Java?
sobes.tech AI
Antwoord van AI
static in Java wordt gebruikt om elementen te declareren die bij de klasse horen, niet bij een specifiek exemplaar van het object.
Het sleutelwoord kan worden toegepast op:
- Variabelen (velden):
- Een kopie van de variabele bestaat voor de hele klasse, ongeacht het aantal gemaakte exemplaren.
- Het kan worden benaderd via de naam van de klasse (bijvoorbeeld,
ClassName.staticVariable).
// Voorbeeld van een statische variabele public class MyMath { public static final double PI = 3.14159; // Toegang: MyMath.PI } - Methoden:
- De methode behoort tot de klasse, niet tot een specifiek object.
- Kan worden aangeroepen via de naam van de klasse (bijvoorbeeld,
ClassName.staticMethod()). - Heeft geen toegang tot niet-statische leden van de klasse (variabelen of methoden), omdat deze gekoppeld zijn aan de instantie.
// Voorbeeld van een statische methode public class Calculator { public static int add(int a, int b) { return a + b; } // Aanroep: Calculator.add(5, 3) } - Initialisatieblokken:
- Wordt één keer uitgevoerd bij het laden van de klasse in de JVM.
- Wordt gebruikt om statische velden te initialiseren of andere acties uit te voeren die met de klasse te maken hebben.
// Voorbeeld van een statisch blok public class DataInitializer { static { // Code die wordt uitgevoerd bij het laden van de klasse System.out.println("DataInitializer klasse geladen."); } } - Binnenklassen (inner/nested classes):
- Een statische binnenklasse gedraagt zich als een gewone klasse op hoog niveau, behalve dat hij binnen een andere klasse ligt.
- Vereist niet het maken van een instantie van de externe klasse om er toegang toe te krijgen.
- Heeft alleen toegang tot de statische leden van de externe klasse.
// Voorbeeld van een statische binnenklasse public class OuterClass { static class StaticInnerClass { // Velden en methoden van de statische binnenklasse } } // Toegang: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
Het gebruik van static helpt bij het maken van hulpprogrammaklassen, het opslaan van gedeelde gegevens en het beheren van de toestand op klasse-niveau.