Co je to statická metoda?

Objektově orientovaná metoda počítačového programování, která je deklarována ve třídě, ale není závislá na žádné konkrétní instanci této třídy, se nazývá statická metoda. Většina programovacích jazyků zahrnuje klíčové slovo static v deklaraci metody vytvoření metody statické. Tyto metody patří přísně do třídy, ve které jsou obsaženy, a nikoli k žádnému objektu, který byl z této třídy instalován. Často se označují jako metody třídy .

Doslovný název třídy se obvykle používá pro přístup ke statické metodě místo toho, aby na ni odkazoval na název instantovaného objektu. V Javě je přípustné používat názvy objektů k odkazování na tyto metody, ale je silně odrazováno. Pokud je použit název objektu, osoba, která čte kód, může zaměnit jednu z těchto metod pomocí metody instance. Používají se také, když programátor potřebujePřístup k metodě, ale není třeba instalovat třídu, ve které je obsažena. Bylo by neobvyklé, že by metoda užitečnosti potřebovala upravit informace o objektu. Metoda z třídy Java.lang.Math, jako je Pow (), by byla příkladem toho, jak by tento typ metody byl použit ve třídě obslužných prostředků.

Metody instance mohou přímo přistupovat k proměnným instancí, statické proměnné, metody instancí a statické metody. Statické metody nemohou přímo přistupovat k proměnným instancí a metody instancí. Vzhledem k povaze metod instancí, které mají lepší přístup k členům třídy než statické metody, jsou metody instancí typ metod běžně používaných v běžných třídách.

Jedna hlavní nevýhoda statických metod nastává během dědictví, když se používá polymorfismus. Pokud rodičovská statická metoda není prohlášena za konečnou, stejné dítěStatická metoda může být kódována ve třídě dítěte, jako by byla přepsána. To se technicky nazývá skrytí místo přepsání, protože statickou metodu nelze přepsat.

Při použití skrývání, pokud je k dispozici rodičovská statická metoda pomocí názvu třídy, bude použita nadřazená metoda. Pokud je přistoupena k přepsanému statické metodě dítěte pomocí názvu objektu, bude použita metoda přepsaná dítě. Problém nastává, když je dětský objekt upcast jako rodič. V tomto případě bude volání k Upcast Child Statické metodě místo očekávané metody dítěte použít rodičovskou metodu. Se skutečným polymorfismem by byla podřízená metoda aktivovaná po upcast.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?