Statična proti nestatični metodi
Metoda je niz stavkov, ki se izvedejo za izvedbo določene naloge. Metode lahko sprejemajo vložke in ustvarjajo rezultate. Statične in nestatične metode sta dve vrsti metod, ki sta prisotni v objektno usmerjenih programskih jezikih. Statična metoda je metoda, ki je povezana z razredom. Metoda, ki je povezana z objektom, se imenuje nestatična (primerna) metoda. V objektno usmerjenih jezikih se metode uporabljajo kot mehanizem za delovanje na podatkih, ki so shranjeni v objektih.
Kaj je statična metoda?
V objektno usmerjenem programiranju je statična metoda metoda, ki je povezana z razredom. Zato statične metode nimajo zmožnosti delovanja na določenem primerku razreda. Statične metode je mogoče priklicati brez uporabe predmeta razreda, ki vsebuje statično metodo. Sledi primer definiranja statične metode v Javi. Pri definiranju statične metode v Javi je treba uporabiti statiko.
javni razred MyClass { public static void MyStaticMethod() { // koda statične metode }
}
Zgoraj definirano statično metodo bi lahko poklicali na naslednji način z uporabo imena razreda, ki mu pripada.
MyClass. MyStaticMethod();
Pomembna stvar, ki jo morate upoštevati, je, da lahko statične metode dostopajo samo do statičnih članov.
Kaj je nestatična metoda?
Nestatična metoda ali metoda primerka je metoda, ki je povezana z objektom v razredu. Zato se nestatične metode kličejo z uporabo predmeta razreda, v katerem je metoda definirana. Nestatična metoda lahko dostopa do nestatičnih članov kot tudi do statičnih članov razreda. V mnogih objektno usmerjenih jezikih (kot so C++, C, Java), ko se pokliče nestatična metoda, se predmet, ki je priklical metodo, posreduje kot implicitni argument (imenuje se sklic "ta"). Torej lahko znotraj metode to ključno besedo uporabite za sklicevanje na predmet, ki je poklical metodo. Sledi primer definiranja metode primerka v Javi.
javni razred MyClass { public void MyInstanceMethod() { // koda metode primerka }
}
Zgoraj definirano metodo primerka bi lahko poklicali na naslednji način z uporabo predmeta razreda, ki mu pripada.
MyClass objMyClass=nov MojRazred();
objMyClass. MyInstanceMethod ();
Kakšna je razlika med statično in nestatično metodo?
Statične metode so metode, ki so povezane z razredom, medtem ko so nestatične metode metode, ki so povezane z objekti razreda. Razred je treba najprej instancirati, da prikliče nestatično metodo, vendar statične metode nimajo te zahteve. Preprosto jih je mogoče priklicati z uporabo imena razreda, ki vsebuje statično metodo. Druga pomembna razlika je, da ima nestatična metoda običajno referenco na objekt, ki je metodo poklical, in do nje lahko dostopate s ključno besedo this znotraj metode. Vendar te ključne besede ni mogoče uporabiti v statičnih metodah, ker niso povezane z določenim objektom.