Statische versus niet-statische methode
Een methode is een reeks instructies die wordt uitgevoerd om een specifieke taak uit te voeren. Methoden kunnen inputs aannemen en outputs produceren. Statische en niet-statische methoden zijn twee soorten methoden die aanwezig zijn in objectgeoriënteerde programmeertalen. Een statische methode is een methode die aan een klasse is gekoppeld. Een methode die aan een object is gekoppeld, wordt een niet-statische methode (instantie) genoemd. In objectgeoriënteerde talen worden methoden gebruikt als een mechanisme om te werken op gegevens die zijn opgeslagen in objecten.
Wat is een statische methode?
In objectgeoriënteerd programmeren is de statische methode een methode die aan een klasse is gekoppeld. Daarom hebben statische methoden niet de mogelijkheid om op een bepaalde instantie van een klasse te werken. Statische methoden kunnen worden aangeroepen zonder een object van de klasse te gebruiken dat de statische methode bevat. Hierna volgt een voorbeeld van het definiëren van een statische methode in Java. De statische moet worden gebruikt bij het definiëren van een statische methode in Java.
openbare klas MyClass openbare statische leegte MyStaticMethod () // code van de statische methodeDe hierboven gedefinieerde statische methode kan als volgt worden genoemd met behulp van de naam van de klasse waartoe het behoort.
MyClass.MyStaticMethod ();
Een belangrijk ding om op te merken is dat statische methoden alleen statische leden kunnen benaderen.
Wat is een niet-statische methode?
Een niet-statische methode of een instantiemethode is een methode die is gekoppeld aan een object in een klasse. Daarom worden niet-statische methoden aangeroepen met behulp van een object van de klasse waarin de methode is gedefinieerd. Een niet-statische methode kan toegang krijgen tot niet-statische leden en statische leden van een klasse. In veel objectgeoriënteerde talen (zoals C ++, C #, Java), wanneer een niet-statische methode wordt aangeroepen, wordt het object dat de methode heeft aangeroepen, doorgegeven als een impliciet argument (dit wordt de 'deze' verwijzing genoemd). Dus binnen de methode kan dit sleutelwoord worden gebruikt om te verwijzen naar het object dat de methode heeft genoemd. Hierna volgt een voorbeeld van het definiëren van een instantiemethode in Java.
openbare klas MyClass openbare leegte MyInstanceMethod () // code van de instantiemethode
De instantiemethode die hierboven is gedefinieerd, kan als volgt worden gebruikt met behulp van een object van de klasse waartoe het behoort.
MyClass objMyClass = nieuwe MyClass ();
objMyClass.MyInstanceMethod ();
Wat is het verschil tussen statische en niet-statische methode?
Statische methoden zijn methoden die aan een klasse zijn gekoppeld, terwijl niet-statische methoden methoden zijn die aan objecten van een klasse zijn gekoppeld. Een klasse moet eerst worden geïnstantieerd om een niet-statische methode aan te roepen, maar statische methoden hebben deze vereiste niet. Ze kunnen eenvoudig worden aangeroepen met behulp van de naam van de klasse die de statische methode bevat. Een ander belangrijk verschil is dat een niet-statische methode meestal een verwijzing bevat naar het object dat de methode heeft aangeroepen en toegang heeft tot dit trefwoord binnen de methode. Maar dit sleutelwoord kan niet worden gebruikt in statische methoden, omdat ze niet aan een bepaald object zijn gekoppeld.