Staatiline vs mittestaatiline meetod
Meetod on lausete jada, mis viiakse läbi konkreetse ülesande täitmiseks. Meetodid võivad võtta sisendeid ja toota väljundeid. 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 objektidena salvestatud andmete käitamise mehhanismina.
Mis on staatiline meetod?
Objektorienteeritud programmeerimisel on staatiline meetod meetod, mis on seotud klassiga. Seetõttu pole staatilistel meetoditel võimalust teatud klassi eksemplaril töötada. Staatilisi meetodeid saab kasutada ilma staatilist meetodit sisaldava klassi objekti kasutamata. Järgnev on näide Java staatilise meetodi määratlemisest. Staatilist tuleb Java-staatilise meetodi määratlemisel kasutada.
avalik klass MyClass {public static void MyStaticMethod () {// staatilise meetodi kood}
}
Eespool määratletud staatilist meetodit võiks nimetada järgmiselt, kasutades klassi, kuhu see kuulub.
MyClass. MyStaticMethod ();
Üks oluline asi on märkida, et staatilised meetodid pääsevad juurde ainult staatilistele liikmetele.
Mis on mittestaatiline meetod?
Mittestaatiline meetod või eksemplarimeetod on meetod, mis on seotud klassi objektiga. Seetõttu nimetatakse mittestaatilisi meetodeid selle klassi objekti abil, milles meetod on määratletud. Mittestaatiline meetod võimaldab juurdepääsu nii staatilistele liikmetele kui ka klassi staatilistele liikmetele. Paljudes objektorienteeritud keeltes (näiteks C ++, C #, Java) edastatakse mittestaatilise meetodi kutsumisel meetodi kutsunud objekt implitsiitseks argumendiks (seda nimetatakse viiteks 'see'). Niisiis saab meetodi sees seda märksõna kasutada objektile, mis meetodit kutsus. Järgnev näide Java-eksemplari meetodi määratlemisest.
avalik klass MyClass {public void MyInstanceMethod () {// eksemplari meetodi kood}
}
Eespool defineeritud eksemplarimeetodit võiks kutsuda järgmiselt, kasutades selle klassi objekti, kuhu see kuulub.
MyClass objMyClass = new MyClass ();
objMyClass. MyInstanceMethod ();
Mis vahe on staatilisel ja mittestaatilisel meetodil?
Staatilised meetodid on klassiga seotud meetodid, mittestaatilised aga klassi objektidega seotud meetodid. Mittestaatilise meetodi käivitamiseks tuleb klass esmalt kiirendada, kuid staatilistel meetoditel seda nõuet pole. Neid saab lihtsalt esile kutsuda, kasutades staatilist meetodit omava klassi nime. Teine oluline erinevus on see, et mittestaatilisel meetodil on tavaliselt viide objektile, mis meetodit kutsus, ja sellele pääseb juurde selle meetodi sees oleva märksõna abil. Kuid seda märksõna ei saa kasutada staatilistes meetodites, kuna need pole seotud konkreetse objektiga.