Een statische methode hoort bij de klasse en een niet-statische methode hoort bij een object van een klasse. De statische methoden kunnen rechtstreeks vanuit de klasse worden benaderd, terwijl niet-statische methoden (of instantiemethoden zoals ik ze graag noem) moeten worden benaderd vanuit een instantie.
Wanneer moet een methode statisch versus niet-statisch zijn?
Een statische methode behoort tot de klasse zelf en een niet-statische (ook wel instantie) methode behoort tot elk object dat door die klasse wordt gegenereerd. Als je methode iets doet dat niet afhankelijk is van de individuele kenmerken van zijn klasse, maak het dan statisch (het zal de voetafdruk van het programma kleiner maken).
Wanneer zou je een niet-statische methode gebruiken?
Een niet-statische methode in Java heeft als volgt toegang tot statische methoden en variabelen:
- Een niet-statische methode heeft toegang tot elke statische methode zonder een instantie van de klasse te maken.
- Een niet-statische methode heeft toegang tot elke statische variabele zonder een instantie van de klasse te maken, omdat de statische variabele tot de klasse behoort.
Wanneer moet je statische functies gebruiken?
Als je een variabele wilt hebben die altijd dezelfde waarde heeft voor elk object van de klasse, voor altijd en altijd, maak deze dan statisch. Als u een methode heeft die geen instantievariabelen of instantiemethoden gebruikt, moet u deze waarschijnlijk statisch maken.
Wat is het verschil tussen statisch en niet-statisch veld?
Statische variabelen of velden behoren tot de klasse, en niet tot enig object van de klasse. Een statische variabele wordt geïnitialiseerd wanneer de klasse tijdens runtime wordt geladen. Niet-statische velden zijn instantievelden van een object. Ze kunnen alleen worden geopend of aangeroepen via een objectreferentie.