Staatiline vs mittestaatiline meetod
Meetod on avalduste seeria, mis viiakse läbi konkreetse ülesande täitmiseks. Meetodid võivad olla sisendid ja väljundid. Staatilised ja mittestaatilised meetodid on kahte tüüpi meetodid, mis esinevad objektorienteeritud programmeerimiskeeltes. Staatiline meetod on meetod, mis on seotud klassiga. Objektiga seotud meetodit nimetatakse mittestaatiliseks (eksemplari) meetodiks. Objektorienteeritud keeltes kasutatakse meetodeid mehhanismina objektidesse salvestatud andmetega töötamiseks.
Mis on staatiline meetod?
Objektorienteeritud programmeerimisel on staatiline meetod klassiga seotud meetod. Seetõttu ei ole staatilistel meetoditel võime töötada klassi konkreetses astmes. Staatilistele meetoditele saab tugineda ilma klassi objekti, mis sisaldab staatilist meetodit. Järgnev on näide staatilise meetodi määratlemisest Java-s. Staatilist meetodit tuleb Java-s staatiliste meetodite määratlemisel kasutada.
avalik klass MyClass avalik staatiline tühine MyStaticMethod () // staatilise meetodi koodEespool määratletud staatilist meetodit võib nimetada järgnevalt, kasutades selle klassi nime, kuhu ta kuulub.
MyClass.MyStaticMethod ();
Üks oluline asi, mida tuleb märkida, on see, et staatilised meetodid pääsevad juurde ainult staatilistele liikmetele.
Mis on mittestaatiline meetod?
Mittestaatiline meetod või esinemisjuhtude meetod on meetod, mis on seotud klassi objektiga. Seetõttu nimetatakse mittestaatilisi meetodeid selle klassi objekti abil, milles meetod on määratletud. Mittestaatiline meetod pääseb juurde nii klassi staatilistele kui ka staatilistele liikmetele. Mitmetes objektorienteeritud keeltes (näiteks C ++, C #, Java), kui nimetatakse mittestaatilist meetodit, antakse meetodile tuginev objekt kaudse argumendina (seda nimetatakse viiteks 'this'). Niisiis, meetodi sees saab seda märksõna kasutada viitamiseks objektile, mis meetodit kutsus. Järgnevalt on toodud näide Java meetodi esinemismeetodi määratlemisest.
avalik klass MyClass avalik tühine MyInstanceMethod () // esinemismeetodi kood
Eespool määratletud esinemismeetodit võib nimetada järgmiselt, kasutades selle klassi objekti, kuhu ta kuulub.
MyClass objMyClass = uus MyClass ();
objMyClass.MyInstanceMethod ();
Mis vahe on staatilisel ja mittestaatilisel meetodil??
Staatilised meetodid on klassiga seotud meetodid, mittestaatilised meetodid aga klassi objektidega seotud meetodid. Mittestaatilise meetodi kasutamiseks tuleb esmalt klass kiirendada, kuid staatilistel meetoditel seda nõuet pole. Neid saab lihtsalt kasutada staatilist meetodit omava klassi nime kasutades. Veel üks oluline erinevus on see, et mittestaatilisel meetodil on tavaliselt viide objektile, mis meetodit kutsus, ja sellele saab meetodi sees juurde pääseda selle märksõna abil. Kuid seda märksõna ei saa staatilistes meetodites kasutada, kuna neid ei seostata konkreetse objektiga.