Statická vs nestatická metóda
Metóda je rad vyhlásení, ktoré sa vykonávajú na vykonanie konkrétnej úlohy. Metódy môžu prijímať vstupy a produkovať výstupy. Statické a nestatické metódy sú dva typy metód prítomných v objektovo orientovaných programovacích jazykoch. Statická metóda je metóda, ktorá je priradená k triede. Metóda, ktorá je priradená k objektu, sa nazýva metóda, ktorá nie je statická (inštancia). V objektovo orientovaných jazykoch sa metódy používajú ako mechanizmus na prácu s údajmi uloženými v objektoch.
Čo je statická metóda?
V objektovo orientovanom programovaní je statická metóda metóda, ktorá je priradená k triede. Statické metódy preto nie sú schopné pracovať v konkrétnom prípade triedy. Statické metódy je možné vyvolať bez použitia objektu triedy, ktorý obsahuje statickú metódu. Nasleduje príklad definovania statickej metódy v jazyku Java. Statika sa musí použiť pri definovaní statickej metódy v Java.
verejná trieda MyClass verejné statické medzery MyStaticMethod () // kód statickej metódyVyššie definovaná statická metóda by sa mohla nazývať nasledujúcim spôsobom s použitím názvu triedy, do ktorej patrí.
MyClass.MyStaticMethod ();
Jednou dôležitou vecou, ktorú treba poznamenať, je, že statické metódy majú prístup iba k statickým členom.
Čo je nestatická metóda?
Nestatická metóda alebo metóda inštancie je metóda, ktorá je priradená k objektu v triede. Preto sa nestatické metódy nazývajú pomocou objektu triedy, v ktorej je metóda definovaná. Nestatická metóda môže získať prístup k statickým členom ako aj statickým členom triedy. V mnohých objektovo orientovaných jazykoch (ako napríklad C ++, C #, Java), keď sa volá nestatická metóda, je objekt, ktorý túto metódu vyvolal, odovzdaný ako implicitný argument (nazýva sa „táto“ referencia). Vo vnútri metódy sa toto kľúčové slovo môže použiť na označenie objektu, ktorý túto metódu nazval. Nasleduje príklad definície metódy inštancie v jazyku Java.
verejná trieda MyClass verejné neplatné MyInstanceMethod () // kód metódy inštancie
Vyššie definovaná metóda inštancie by sa mohla nazývať nasledujúcim spôsobom s použitím objektu triedy, do ktorej patrí.
MyClass objMyClass = new MyClass ();
objMyClass.MyInstanceMethod ();
Aký je rozdiel medzi statickou a nestatickou metódou?
Statické metódy sú metódy, ktoré sú priradené k triede, zatiaľ čo nestatické metódy sú metódy, ktoré sú spojené s objektmi triedy. Trieda musí byť vyvolaná najprv, aby vyvolala nestatickú metódu, ale statické metódy túto požiadavku neobsahujú. Je možné ich jednoducho vyvolať pomocou názvu triedy, ktorá obsahuje statickú metódu. Ďalším dôležitým rozdielom je to, že nestatická metóda obvykle obsahuje odkaz na objekt, ktorý metódu nazýva, a dá sa k nej získať pomocou tohto kľúčového slova vo vnútri metódy. Toto kľúčové slovo však nemožno použiť v statických metódach, pretože nie sú spojené s konkrétnym objektom.