I Java definerer metoder oppførselen til klasser og objekter. Å forstå forskjellen mellom statiske metoder og instansmetoder er avgjørende for å skrive ren og effektiv kode.
i rekkefølge
Hva er en statisk metode?
EN statisk metode tilhører klassen i stedet for et bestemt objekt.
- Kan kalles uten å opprette en forekomst av klassen.
- Siden statiske metoder er alle objektspesifikke, kan de bare få tilgang til statiske medlemmer (data og metoder) og ikke få tilgang til ikke-statiske medlemmer.
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(); } }
Produksjon
Hello Geek! Hello Geek!
Forklaring: Eksemplet ovenfor viser en statisk metode greet() inne i Geeks-klassen statiske metoder kan kalles uten å lage et objekt. I hovedmetoden lager vi ikke et objekt av Geek-klassen, vi kaller metoden direkte ved klassenavnet som er Geeks og så skriver vi ut utdataene.
Hva er en instansmetode?
An Forekomstmetode tilhører en gjenstand.
- Trenger å opprette en forekomst av klassen å ringe.
- Kan få tilgang til instansvariabler andre instansmetoder og statiske medlemmer av klassen.
- Har tilgang til
thisreferanse som peker på det gjeldende objektet.
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); } }
Produksjon
GeeksforGeeks
Forklaring: Eksemplet ovenfor viser hvordan du bruker en instansmetode i Java. Vi lager et objekt av Test-klassen og kaller testmetoden for å angi en verdi, og så skriver vi ut utdataene.
Forskjellen mellom statisk metode og instansmetode
Følgende tabell viser store forskjeller mellom de statiske metodene og instansmetodene i Java.
Funksjoner | Statisk metode | Forekomstmetode |
|---|---|---|
Definisjon | Laget ved hjelp av det statiske nøkkelordet og hentet uten å opprette et objekt. | Krever et objekt i klassen for å bli påkalt. |
Adgang | Få kun tilgang til statiske variabler og metoder. | Kan få tilgang til både statiske medlemmer og instansmedlemmer. |
| Kan ikke bruke dette nøkkelord innen statiske metoder. | Kan bruke dette nøkkelordet for å referere til gjeldende objekt. |
Overstyr | Støtter ikke runtime polymorfisme | Støtter runtime polymorfisme |
Minnetildeling | Lastes en gang per klasse | Hvert objekt har sin egen kopi |