In Java definieren Methoden das Verhalten von Klassen und Objekten. Um sauberen und effizienten Code zu schreiben, ist es wichtig, den Unterschied zwischen statischen Methoden und Instanzmethoden zu verstehen.
Was ist eine statische Methode?
A statische Methode gehört zur Klasse und nicht zu einem bestimmten Objekt.
- Kann aufgerufen werden, ohne eine Instanz der Klasse zu erstellen.
- Da statische Methoden objektspezifisch sind, können sie nur auf statische Elemente (Daten und Methoden) und nicht auf nicht statische Elemente zugreifen.
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(); } }
Ausgabe
Hello Geek! Hello Geek!
Erläuterung: Das obige Beispiel zeigt eine statische Methode „greet()“ innerhalb der Geeks-Klasse. Statische Methoden können aufgerufen werden, ohne ein Objekt zu erstellen. In der Hauptmethode erstellen wir kein Objekt der Geek-Klasse, sondern rufen die Methode direkt mit dem Klassennamen Geeks auf und drucken dann die Ausgabe.
Was ist eine Instanzmethode?
Ein Instanzmethode gehört zu einem Objekt.
- Es muss eine Instanz der aufzurufenden Klasse erstellt werden.
- Kann auf Instanzvariablen, andere Instanzmethoden und statische Mitglieder der Klasse zugreifen.
- Zugriff haben auf
thisReferenz was auf das aktuelle Objekt zeigt.
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); } }
Ausgabe
GeeksforGeeks
Erläuterung: Das obige Beispiel zeigt, wie eine Instanzmethode in Java verwendet wird. Wir erstellen ein Objekt der Testklasse und rufen die Testmethode auf, um einen Wert festzulegen, und drucken dann die Ausgabe aus.
Unterschied zwischen statischer Methode und Instanzmethode
Die folgende Tabelle listet die auf große Unterschiede zwischen den statischen Methoden und den Instanzmethoden in Java.
Merkmale s in Python | Statische Methode | Instanzmethode |
|---|---|---|
Definition | Erstellt mit dem Schlüsselwort static und abgerufen, ohne ein Objekt zu erstellen. | Erfordert den Aufruf eines Objekts seiner Klasse. |
Zugang | Greifen Sie nur auf statische Variablen und Methoden zu. einfacher Datumsformatierer in Java | Kann sowohl auf statische als auch auf Instanzmitglieder zugreifen. |
| Kann nicht verwendet werden Das Schlüsselwort innerhalb statischer Methoden. | Kann das Schlüsselwort this verwenden, um auf das aktuelle Objekt zu verweisen. |
Überschreiben | Unterstützt keinen Laufzeitpolymorphismus | Unterstützt Laufzeitpolymorphismus |
Speicherzuweisung | Wird einmal pro Klasse geladen | Jedes Objekt hat seine eigene Kopie |