Junior
Voor welke toepassingen is de static-modificator geschikt?
sobes.tech AI
Antwoord van AI
- Klassevariabelen (statische velden): Om gegevens op te slaan die gedeeld worden door alle instanties van de klasse. Bijvoorbeeld, een teller voor gemaakte objecten of constanten.
- Klassemethoden (statische methoden): Voor het uitvoeren van acties die niet afhankelijk zijn van een specifiek exemplaar van de klasse. Bijvoorbeeld, hulpfuncties of methoden voor het werken met statische velden.
- Statische initialisatieblokken: Voor het uitvoeren van complexe initialisaties van statische velden bij het laden van de klasse.
- Statische interne klassen: Voor het logisch groeperen van gerelateerde klassen of voor gebruik als hulpklassen zonder verwijzing naar een extern object.
Voorbeelden:
public class MyClass {
// Statisch veld (constante)
public static final int MAX_COUNT = 100;
// Statisch veld (aantal instanties)
private static int instanceCount = 0;
// Statisch initialisatieblok
static {
System.out.println("MyClass geladen.");
}
public MyClass() {
instanceCount++;
}
// Statische methode
public static int getInstanceCount() {
return instanceCount;
}
// Statische interne klasse
public static class StaticInnerClass {
public void doSomething() {
System.out.println("In de statische interne klasse.");
}
}
}
Vergelijkingstabel van statische en niet-statische leden:
| Kenmerk | Statisch lid | Niet-statisch lid |
|---|---|---|
| Relatie met object | Behoort tot de klasse | Behoort tot de instantie |
| Toegang | Via de naam van de klasse of een object | Via het object |
| Initialisatie | Bij het laden van de klasse | Bij het maken van het object |
| Geheugen | Wordt één keer toegewezen | Wordt voor elk object toegewezen |