Skip to main content

Was ist eine statische Methode?

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

Der wörtliche Name der Klasse wird normalerweise verwendet, um auf eine statische Methode zuzugreifen, anstatt sich mit dem Namen eines instanziierten Objekts darauf zu beziehen.In Java ist es zulässig, Objektnamen zu verwenden, um auf diese Methoden zu verweisen, ist jedoch stark entmutigt.Wenn ein Objektname verwendet wird, kann eine Person, die den Code liest, eine dieser Methoden mit einer Instanzmethode verwirren.Sie werden auch verwendet, wenn ein Programmierer auf die Methode zugreifen muss. Es besteht jedoch nicht erforderlich, die Klasse zu instanziieren, in der er enthalten ist. Die Versorgungsklassen werden normalerweise nicht in Objekte instanziiert.Es wäre ungewöhnlich, dass eine Versorgungsmethode die Änderung von Objektinformationen benötigt.Eine Methode aus der Klasse java.lang.math, wie z. B. Pow (), wäre ein Beispiel dafür, wie diese Art von Methode in einer Versorgungsklasse verwendet wird.und statische Methoden.Statische Methoden können nicht direkt auf Instanzvariablen und Instanzmethoden zugreifen.Aufgrund der Art von Instanzmethoden, die einen besseren Zugang zu Klassenmitgliedern als statische Methoden haben, sind Instanzmethoden die Art von Methoden, die normalerweise in regulären Klassen verwendet werden.

Ein Hauptnachteil statischer Methoden tritt während der Vererbung auf, wenn Polymorphismus verwendet wird.Solange die übergeordnete statische Methode nicht endgültig erklärt wird, kann die gleiche statische untergeordnete Methode in der untergeordneten Klasse so codiert werden, als würde sie außer Kraft gesetzt.Dies wird technisch als Versteck anstelle von Überschreibungen bezeichnet, da eine statische Methode nicht überschrieben werden kann.

Wenn das Verstecken verwendet wird, wird die übergeordnete Methode verwendet, wenn auf die statische übergeordnete statische Methode zugegriffen wird.Wenn die statische unterschriebene unterschriebene Methode unter Verwendung des Objektnamens zugegriffen wird, wird die überschriebene untergeordnete Methode verwendet.Das Problem tritt auf, wenn ein untergeordnetes Objekt als Elternteil aufgelassen wird.In diesem Fall wird ein Aufruf der Upcast Child Static Methode die übergeordnete Methode anstelle der erwarteten untergeordneten Methode verwendet.Mit echtem Polymorphismus wäre die Kindermethode die nach einem Upcast aktiviert.