Das Schlüsselwort static wird zum Erstellen von Methoden verwendet, die unabhängig davon existieren, ob Instanzen der Klasse generiert werden oder nicht. Jede Methode, die das Schlüsselwort static verwendet, wird als statische Methode bezeichnet.
Merkmale der statischen Methode:
- Eine statische Methode in Java ist eine Methode, die Teil einer Klasse und keine Instanz dieser Klasse ist.
- Jede Instanz einer Klasse hat Zugriff auf die Methode.
- Statische Methoden haben Zugriff auf Klassenvariablen (statische Variablen), ohne das Objekt (Instanz) der Klasse zu verwenden.
- Mit einer statischen Methode kann nur auf statische Daten zugegriffen werden. Es ist nicht möglich, auf Daten zuzugreifen, die nicht statisch sind (Instanzvariablen).
- Sowohl bei statischen als auch bei nicht statischen Methoden kann direkt auf statische Methoden zugegriffen werden.
Syntax zum Deklarieren der statischen Methode:
Access_modifier static void methodName() { // Method body. }> Der Name der Klasse kann verwendet werden, um statische Methoden aufzurufen oder darauf zuzugreifen.
Syntax zum Aufrufen einer statischen Methode:
className.methodName();>
Beispiel 1: Die statische Methode hat keinen Zugriff auf die Instanzvariable
Die JVM führt zuerst die statische Methode aus, gefolgt von der Erstellung von Klasseninstanzen. Denn bei Verwendung der statischen Methode sind keine Objekte zugänglich. Eine statische Methode hat keinen Zugriff auf Instanzvariablen. Daher kann eine statische Methode nicht auf die Instanzvariable einer Klasse zugreifen.
Java
Datei in Java öffnen
// Java program to demonstrate that> // The static method does not have> // access to the instance variable> > import> java.io.*;> > public> class> GFG {> >// static variable> >static> int> a =>40>;> > >// instance variable> >int> b =>50>;> > >void> simpleDisplay()> >{> >System.out.println(a);> >System.out.println(b);> >}> > >// Declaration of a static method.> >static> void> staticDisplay()> >{> >System.out.println(a);> >}> > >// main method> >public> static> void> main(String[] args)> >{> >GFG obj =>new> GFG();> >obj.simpleDisplay();> > >// Calling static method.> >staticDisplay();> >}> }> |
>
bestes Lächeln der Welt
>Ausgabe
40 50 40>
Beispiel 2: Sowohl bei statischen als auch bei nicht statischen Methoden wird direkt auf statische Methoden zugegriffen.
Java
// Java program to demonstrate that> // In both static and non-static methods,> // static methods are directly accessed.> > import> java.io.*;> > public> class> StaticExample {> > >static> int> num =>100>;> >static> String str =>'GeeksForGeeks'>;> > >// This is Static method> >static> void> display()> >{> >System.out.println(>'static number is '> + num);> >System.out.println(>'static string is '> + str);> >}> > >// non-static method> >void> nonstatic()> >{> >// our static method can accessed> >// in non static method> >display();> >}> > >// main method> >public> static> void> main(String args[])> >{> >StaticExample obj =>new> StaticExample();> > >// This is object to call non static function> >obj.nonstatic();> > >// static method can called> >// directly without an object> >display();> >}> }> |
>
>
Wann kam Win 7 heraus?Ausgabe
static number is 100 static string is GeeksForGeeks static number is 100 static string is GeeksForGeeks>
Warum statische Methoden verwenden?
- Um auf statische Variablen und andere nicht objektbasierte statische Methoden zuzugreifen und diese zu ändern.
- Utility- und Assist-Klassen verwenden häufig statische Methoden.
Einschränkungen bei statischen Methoden:
- Nicht statische Datenelemente oder nicht statische Methoden können nicht von statischen Methoden verwendet werden, und statische Methoden können nicht statische Methoden nicht direkt aufrufen.
- In einer statischen Umgebung dürfen this und super nicht verwendet werden.
Warum ist die Hauptmethode in Java statisch?
Dies liegt daran, dass der Aufruf einer statischen Methode für das Objekt nicht erforderlich ist. Wenn es sich um eine nicht statische Funktion handelte, würde JVM zunächst ein Objekt erstellen, bevor die Methode main() aufgerufen wird, was zu zusätzlichen Schwierigkeiten bei der Speicherzuweisung führen würde.
Unterschied zwischen der statischen Methode und der Instanzmethode
| Instanzmethoden | Statische Methoden |
|---|---|
| Es erfordert ein Objekt der Klasse. | Es ist kein Objekt der Klasse erforderlich. |
| Es kann auf alle Attribute einer Klasse zugreifen. | Es kann nur auf das statische Attribut einer Klasse zugegriffen werden. |
| Auf die Methoden kann nur über eine Objektreferenz zugegriffen werden. | Der Zugriff auf die Methode erfolgt nur über den Klassennamen. |
| Syntax: Objref.methodname() | Syntax: Klassenname.Methodenname() |
| Es ist ein Beispiel für die Pass-by-Value-Programmierung. | Es ist ein Beispiel für Pass-by-Reference-Programmierung. |