Was ist eine statische Methode?

Eine objektorientierte Computerprogrammiermethode, die in einer Klasse deklariert ist, aber nicht von einer bestimmten Instanz dieser Klasse abhängt, wird als statische Methode bezeichnet. Die meisten Programmiersprachen enthalten das Schlüsselwort static in der Deklaration einer Methode, um eine Methode statisch zu machen. Diese Methoden gehören ausschließlich zu der Klasse, in der sie enthalten sind, und nicht zu einem Objekt, das aus dieser Klasse instanziiert wurde. Sie werden häufig als Klassenmethoden bezeichnet .

Der Literalname der Klasse wird normalerweise verwendet, um auf eine statische Methode zuzugreifen, anstatt auf sie mit dem Namen eines instanziierten Objekts zu verweisen. In Java ist es zulässig, Objektnamen zu verwenden, um auf diese Methoden zu verweisen, es wird jedoch dringend davon abgeraten. Wenn ein Objektname verwendet wird, kann eine Person, die den Code liest, eine dieser Methoden mit einer Instanzmethode verwechseln.

Statische Methoden werden häufig in Dienstprogrammklassen verwendet, die nicht von Instanzvariablen einer bestimmten Klasse abhängen. Sie werden auch verwendet, wenn ein Programmierer auf die Methode zugreifen muss, die Klasse, in der sie enthalten ist, jedoch nicht instanziiert werden muss. Dienstprogrammklassen werden normalerweise nicht in Objekte instanziiert. Es ist ungewöhnlich, dass eine Dienstprogrammmethode Objektinformationen ändern muss. Eine Methode aus der Klasse java.lang.math wie pow () wäre ein Beispiel für die Verwendung dieser Art von Methode in einer Utility-Klasse.

Instanzmethoden können direkt auf Instanzvariablen, statische Variablen, Instanzmethoden und statische Methoden zugreifen. Statische Methoden können nicht direkt auf Instanzvariablen und Instanzmethoden zugreifen. Aufgrund der Natur von Instanzmethoden, die einen besseren Zugriff auf Klassenmitglieder haben als statische Methoden, sind Instanzmethoden die Art von Methoden, die normalerweise in regulären Klassen verwendet werden.

Ein Hauptnachteil der statischen Methoden tritt während der Vererbung auf, wenn Polymorphismus verwendet wird. Solange die übergeordnete statische Methode nicht als final deklariert ist, kann dieselbe untergeordnete statische Methode in der untergeordneten Klasse so codiert werden, als würde sie überschrieben. Dies wird technisch als Ausblenden anstatt als Überschreiben bezeichnet, da eine statische Methode nicht überschrieben werden kann.

Wenn das Ausblenden verwendet wird, wird die übergeordnete Methode verwendet, wenn auf die übergeordnete statische Methode unter Verwendung des Klassennamens zugegriffen wird. Wenn auf die überschriebene statische untergeordnete Methode unter Verwendung des Objektnamens zugegriffen wird, wird die überschriebene untergeordnete Methode verwendet. Das Problem tritt auf, wenn ein untergeordnetes Objekt als übergeordnetes Objekt übertragen wird. In diesem Fall wird bei einem Aufruf der statischen Methode upcast child die übergeordnete Methode anstelle der erwarteten untergeordneten Methode verwendet. Bei echtem Polymorphismus ist die untergeordnete Methode diejenige, die nach einem Upcast aktiviert wird.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?