logo

Statisk metod vs instansmetod i Java

I Java definierar metoder beteendet hos klasser och objekt. Att förstå skillnaden mellan statiska metoder och instansmetoder är viktigt för att skriva ren och effektiv kod.

Vad är en statisk metod?

A statisk metod tillhör klassen snarare än något specifikt objekt.

  • Kan anropas utan att skapa en instans av klassen.
  • Eftersom statiska metoder är vilka som helst objektspecifika kan de endast komma åt statiska medlemmar (data och metoder) och kan inte komma åt icke-statiska medlemmar.
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();  } } 

Produktion
Hello Geek! Hello Geek! 

Förklaring: Ovanstående exempel visar en statisk metod greet() i klassen Geeks statiska metoder kan anropas utan att skapa ett objekt. I huvudmetoden skapar vi inte ett objekt av Geek-klassen, vi anropar metoden direkt med klassnamnet som är Geeks och sedan skriver vi ut resultatet.



Vad är en instansmetod?

En Instansmetod tillhör ett föremål.

jframe
  • Behöver skapa en instans av klassen att anropa.
  • Kan komma åt instansvariabler andra instansmetoder och statiska medlemmar av klassen.
  • Har tillgång till thishänvisning som pekar på det aktuella 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);  } } 

Produktion
GeeksforGeeks 

Förklaring: Ovanstående exempel visar hur man använder en instansmetod i Java. Vi skapar ett objekt av klassen Test och anropar testmetoden för att ställa in ett värde och sedan skriver vi ut resultatet.

Skillnaden mellan statisk metod och instansmetod

Följande tabell listar  stora skillnader mellan de statiska metoderna och instansmetoderna i Java.

Drag

Statisk metod

Instansmetod

jämföra i java

Definition

Skapat med det statiska nyckelordet och hämtat utan att skapa ett objekt.

Kräver att ett objekt i dess klass ska anropas.

Tillträde

Få endast tillgång till statiska variabler och metoder.

Kan komma åt både statiska och instansmedlemmar.

this nyckelord

Kan inte använda detta nyckelord inom statiska metoder.

Kan använda detta nyckelord för att referera till det aktuella objektet.

Åsidosätta

Stöder inte runtime polymorfism

Stöder runtime polymorfism

Minnestilldelning

Laddas en gång per klass

lär dig noggrannhetspoäng

Varje objekt har sin egen kopia


Skapa frågesport