logo

Statisk metode vs instansmetode i Java

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.
Java
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.
Java
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.

this nøkkelord

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


Lag quiz