Staattinen vs. ei-staattinen menetelmä
Menetelmä on joukko lauseita, jotka suoritetaan tietyn tehtävän suorittamiseksi. Menetelmät voivat ottaa syötteitä ja tuottaa tuloksia. Staattiset ja ei-staattiset menetelmät ovat kahdenlaisia menetelmiä, joita esiintyy olioohjelmointikielissä. Staattinen menetelmä on menetelmä, joka liittyy luokkaan. Objektiin liittyvää menetelmää kutsutaan ei-staattiseksi (instanssi) menetelmäksi. Oliosuuntautuneissa kielissä menetelmiä käytetään mekanismina objekteihin tallennettujen tietojen käsittelyyn.
Mikä on staattinen menetelmä?
Olo-ohjelmoinnissa staattinen menetelmä on menetelmä, joka liittyy luokkaan. Siksi staattiset menetelmät eivät pysty toimimaan tietyssä luokan esiintymässä. Staattisia menetelmiä voidaan kutsua käyttämättä staattisen menetelmän sisältävän luokan objektia. Seuraavassa on esimerkki staattisen menetelmän määrittämisestä Javassa. Staattista menetelmää on käytettävä määriteltäessä staattista menetelmää Javassa.
public class MyClass { public static void MyStaticMethod() { // staattisen menetelmän koodi }
}
Yllä määriteltyä staattista menetelmää voitaisiin kutsua seuraavasti käyttämällä sen luokan nimeä, johon se kuuluu.
MyClass. MyStaticMethod();
Yksi tärkeä asia on huomata, että staattiset menetelmät voivat käyttää vain staattisia jäseniä.
Mikä on ei-staattinen menetelmä?
Ei-staattinen menetelmä tai ilmentymämenetelmä on menetelmä, joka liittyy luokan objektiin. Siksi ei-staattisia menetelmiä kutsutaan käyttämällä sen luokan objektia, jossa menetelmä on määritelty. Ei-staattinen menetelmä voi käyttää luokan ei-staattisia jäseniä sekä staattisia jäseniä. Monissa oliokielisissä kielissä (kuten C++, C, Java), kun ei-staattista menetelmää kutsutaan, menetelmän kutsunut objekti välitetään implisiittisenä argumenttina (se on nimeltään "tämä"-viittaus). Joten menetelmän sisällä tätä avainsanaa voidaan käyttää viittaamaan objektiin, joka kutsui metodia. Seuraavassa on esimerkki ilmentymämenetelmän määrittämisestä Javassa.
public class MyClass { public void MyInstanceMethod() { // esiintymän menetelmän koodi }
}
Yllä määriteltyä ilmentymämetodia voitaisiin kutsua seuraavasti käyttämällä objektia, jonka luokkaan se kuuluu.
MyClass objMyClass=new MyClass();
objMyClass. MyInstanceMethod ();
Mitä eroa on staattisen ja ei-staattisen menetelmän välillä?
Staattiset menetelmät ovat menetelmiä, jotka liittyvät luokkaan, kun taas ei-staattiset menetelmät ovat menetelmiä, jotka liittyvät luokan objekteihin. Luokka täytyy ensin instantoida, jotta se voi kutsua ei-staattisen menetelmän, mutta staattisilla menetelmillä ei ole tätä vaatimusta. Ne voidaan yksinkertaisesti kutsua käyttämällä staattisen menetelmän sisältävän luokan nimeä. Toinen tärkeä ero on, että ei-staattisella menetelmällä on yleensä viittaus metodia kutsuneeseen objektiin ja sitä voidaan käyttää käyttämällä metodin sisällä olevaa avainsanaa. Mutta tätä avainsanaa ei voi käyttää staattisissa menetelmissä, koska niitä ei ole liitetty tiettyyn objektiin.