Video: Week 8 2024
In Java is een statisch -lid lid van een klasse die niet is gekoppeld aan een exemplaar van een klas. In plaats daarvan behoort het lid tot de klasse zelf. Als gevolg hiervan hebt u toegang tot het statische lid zonder eerst een klasseninstantie te maken.
De twee typen statische leden zijn statische velden en statische methoden:
-
Statisch veld: Een veld dat is gedeclareerd met het statische zoekwoord, zoals dit:
private static int ballCount;
De positie van het statische zoekwoord is uitwisselbaar met de posities van de zichtbaarheidszoekwoorden (privé en openbaar, evenals beveiligd). Als gevolg hiervan werkt de volgende verklaring ook:
statische privé-int ballCount;
Als een conventie hebben de meeste programmeurs de neiging om het zichtbaarheid sleutelwoord eerst te plaatsen.
De waarde van een statisch veld is hetzelfde voor alle instanties van de klasse. Met andere woorden, als een klasse een statisch veld met de naam CompanyName heeft, hebben alle objecten die zijn gemaakt met de klasse dezelfde waarde voor CompanyName.
Statische velden worden gemaakt en geïnitialiseerd wanneer de klasse voor het eerst wordt geladen. Dat gebeurt wanneer naar een statisch lid van de klasse wordt verwezen of wanneer een instantie van de klasse wordt gemaakt, afhankelijk van wat zich het eerst voordoet.
-
Statische methode: Een methode die is gedeclareerd met het statische zoekwoord. Net als statische velden zijn statische methoden gekoppeld aan de klasse zelf, niet aan een specifiek object dat is gemaakt op basis van de klasse. Als gevolg hiervan hoeft u geen object uit een klasse te maken voordat u statische methoden kunt gebruiken die door de klasse zijn gedefinieerd.
De bekendste statische methode is main, die door de Java-runtime wordt aangeroepen om een toepassing te starten. De hoofdmethode moet statisch zijn, wat betekent dat toepassingen standaard in een statische context worden uitgevoerd.
Een van de basisregels voor het werken met statische methoden is dat u geen toegang krijgt tot een niet-statische methode of veld van een statische methode, omdat de statische methode geen exemplaar van de klasse heeft om te gebruiken om te verwijzen naar instantiemethoden of velden.