In Java definiëren methoden het gedrag van klassen en objecten. Het begrijpen van het verschil tussen statische methoden en instantiemethoden is essentieel voor het schrijven van schone en efficiënte code.
Wat is een statische methode?
A statische methode behoort tot de klasse en niet tot een specifiek object.
- Kan worden aangeroepen zonder een instantie van de klasse te maken.
- Omdat statische methoden elk objectspecifiek zijn, hebben ze alleen toegang tot statische leden (gegevens en methoden) en hebben ze geen toegang tot niet-statische leden.
import java.io.*; class Geeks { // static method public static void greet() { System.out.println('Hello Geek!'); } public static void main(String[] args) { // calling the method directily greet(); // using the class name Geeks.greet(); } }
Uitvoer
Hello Geek! Hello Geek!
Uitleg: Het bovenstaande voorbeeld toont een statische methode greet() binnen de klasse Geeks. statische methoden kunnen worden aangeroepen zonder een object te maken. In de hoofdmethode maken we geen object van de Geek-klasse, we roepen de methode rechtstreeks aan met de klassenaam, namelijk Geeks, en vervolgens drukken we de uitvoer af.
Wat is een instancemethode?
Een Instantiemethode hoort bij een object.
- Er moet een exemplaar worden gemaakt van de klasse die moet worden aangeroepen.
- Heeft toegang tot instantievariabelen, andere instantiemethoden en statische leden van de klasse.
- Toegang hebben tot
thisreferentie die naar het huidige object verwijst.
import java.io.*; class Test { String n = ''; // Instance method public void test(String n) { this.n = n; } } class Geeks { public static void main(String[] args) { // create an instance of the class Test t = new Test(); // calling an instance method in the class 'Geeks' t.test('GeeksforGeeks'); System.out.println(t.n); } }
Uitvoer
GeeksforGeeks
Uitleg: Het bovenstaande voorbeeld laat zien hoe u een instantiemethode in Java gebruikt. We maken een object van de klasse Test en roepen de testmethode aan om een waarde in te stellen, waarna we de uitvoer afdrukken.
Verschil tussen statische methode en instantiemethode
De volgende tabel bevat de grote verschillen tussen de statische methoden en de instantiemethoden in Java.
Functies | Statische methode software testen | Instantiemethode |
|---|---|---|
Definitie | Gemaakt met behulp van het statische trefwoord en opgehaald zonder een object te maken. | Vereist dat een object van zijn klasse wordt aangeroepen. |
Toegang java kern java | Alleen toegang tot statische variabelen en methoden. | Heeft toegang tot zowel statische als instantieleden. |
| Kan de dit trefwoord binnen statische methoden. | Kan het trefwoord this gebruiken om naar het huidige object te verwijzen. |
Overschrijven computer uitgevonden welk jaar | Ondersteunt geen runtime-polymorfisme | Ondersteunt runtime-polymorfisme |
Geheugentoewijzing | Eén keer per les geladen | Elk object heeft zijn eigen exemplaar |