Statische vs. nicht statische Methode
Eine Methode ist eine Reihe von Anweisungen, die ausgeführt werden, um eine bestimmte Aufgabe auszuführen. Methoden können Eingaben annehmen und Ausgaben erzeugen. Statische und nicht statische Methoden sind zwei Arten von Methoden, die in objektorientierten Programmiersprachen vorhanden sind. Eine statische Methode ist eine Methode, die einer Klasse zugeordnet ist. Eine Methode, die einem Objekt zugeordnet ist, wird als nicht statische (Instanz-)Methode bezeichnet. In objektorientierten Sprachen werden Methoden als Mechanismus verwendet, um mit Daten zu arbeiten, die in Objekten gespeichert sind.
Was ist eine statische Methode?
In der objektorientierten Programmierung ist eine statische Methode eine Methode, die einer Klasse zugeordnet ist. Daher haben statische Methoden nicht die Fähigkeit, auf einer bestimmten Instanz einer Klasse zu arbeiten. Statische Methoden können aufgerufen werden, ohne ein Objekt der Klasse zu verwenden, die die statische Methode enthält. Im Folgenden finden Sie ein Beispiel für die Definition einer statischen Methode in Java. Die Statik muss verwendet werden, wenn eine statische Methode in Java definiert wird.
public class MyClass { public static void MyStaticMethod() { // Code der statischen Methode }
}
Die oben definierte statische Methode könnte wie folgt unter Verwendung des Namens der Klasse, zu der sie gehört, aufgerufen werden.
MeineKlasse. MeineStatischeMethode();
Ein wichtiger Hinweis ist, dass statische Methoden nur auf statische Mitglieder zugreifen können.
Was ist eine nicht statische Methode?
Eine nicht statische Methode oder eine Instanzmethode ist eine Methode, die einem Objekt in einer Klasse zugeordnet ist. Daher werden nicht statische Methoden aufgerufen, indem ein Objekt der Klasse verwendet wird, in der die Methode definiert ist. Eine nicht statische Methode kann sowohl auf nicht statische Mitglieder als auch auf statische Mitglieder einer Klasse zugreifen. In vielen objektorientierten Sprachen (wie C++, C, Java) wird beim Aufruf einer nicht statischen Methode das Objekt, das die Methode aufgerufen hat, als implizites Argument übergeben (es wird als „this“-Referenz bezeichnet). Innerhalb der Methode kann dieses Schlüsselwort also verwendet werden, um auf das Objekt zu verweisen, das die Methode aufgerufen hat. Es folgt ein Beispiel für die Definition einer Instanzmethode in Java.
public class MyClass { public void MyInstanceMethod() { // Code der Instanzmethode }
}
Die oben definierte Instanzmethode könnte folgendermaßen aufgerufen werden, indem ein Objekt der Klasse verwendet wird, zu der sie gehört.
MeineKlasse objMeineKlasse=new MeineKlasse();
objMyClass. MyInstanceMethod ();
Was ist der Unterschied zwischen statischer und nicht statischer Methode?
Statische Methoden sind Methoden, die einer Klasse zugeordnet sind, während nicht-statische Methoden Methoden sind, die Objekten einer Klasse zugeordnet sind. Eine Klasse muss zuerst instanziiert werden, um eine nicht statische Methode aufzurufen, aber statische Methoden haben diese Anforderung nicht. Sie können einfach mit dem Namen der Klasse aufgerufen werden, die die statische Methode enthält. Ein weiterer wichtiger Unterschied besteht darin, dass eine nicht statische Methode normalerweise eine Referenz auf das Objekt besitzt, das die Methode aufgerufen hat, und dass mit dem Schlüsselwort this innerhalb der Methode darauf zugegriffen werden kann. Dieses Schlüsselwort kann jedoch nicht in statischen Methoden verwendet werden, da sie keinem bestimmten Objekt zugeordnet sind.