Statinis ir nestatinis metodas
Metodas yra teiginių serija, kuri atliekama tam tikrai užduočiai atlikti. Metodai gali būti naudojami įvesties metu ir gaunami išėjimai. Statiniai ir nestatiniai metodai yra dviejų tipų metodai, naudojami objektinio programavimo kalbose. Statinis metodas yra metodas, susijęs su klase. Metodas, kuris yra susietas su objektu, vadinamas nestatiniu (egzemplioriaus) metodu. Objektinėse kalbose metodai naudojami kaip mechanizmas, naudojamas duomenims, kurie yra saugomi objektuose, naudoti.
Kas yra statinis metodas?
Objektinio programavimo metu statinis metodas yra metodas, susietas su klase. Todėl statiniai metodai neturi galimybių veikti konkrečiu klasės egzemplioriumi. Statiniais metodais galima remtis nenaudojant klasės objekto, kuriame yra statinis metodas. Toliau pateiktas statinio metodo „Java“ apibrėžimo pavyzdys. Apibrėžiant statinį metodą „Java“, reikia naudoti statinį.
viešosios klasės „MyClass“ „public static void“ „MyStaticMethod“ () // statinio metodo kodasAukščiau apibrėžtą statinį metodą galima pavadinti taip, naudojant klasės, kuriai jis priklauso, pavadinimą.
„MyClass.MyStaticMethod“ ();
Svarbu atkreipti dėmesį į tai, kad statiniai metodai gali pasiekti tik statinius narius.
Kas yra nestatinis metodas?
Nestatinis metodas arba egzempliorių metodas yra metodas, susietas su klasės objektu. Todėl nestatiniai metodai vadinami naudojant klasės, kurioje metodas apibrėžtas, objektą. Ne statiniu metodu galima pasiekti ne statinius, bet ir statinius klasės narius. Daugelyje objektų orientuotų kalbų (pvz., C ++, C #, Java), kai vadinamas nestatišku metodu, objektas, kuris paskatino metodą, perduodamas kaip numanomas argumentas (jis vadinamas „šia“ nuoroda). Taigi metodo viduje šis raktinis žodis gali būti naudojamas nurodyti objektą, kuris pavadino metodą. Toliau pateiktas egzemplioriaus metodo „Java“ apibrėžimo pavyzdys.
viešosios klasės „MyClass“ visuomenės negaliojanti „MyInstanceMethod“ () // egzemplioriaus metodo kodas
Aukščiau apibrėžtą egzempliorių metodą galima būtų pavadinti taip, naudojant klasės, kuriai jis priklauso, objektą.
„MyClass“ objMyClass = nauja „MyClass“ ();
objMyClass.MyInstanceMethod ();
Kuo skiriasi statinis ir nestatinis metodas?
Statiniai metodai yra metodai, susieti su klase, tuo tarpu ne statiniai metodai yra metodai, susieti su klasės objektais. Jei norite naudoti nestatinį metodą, pirmiausia reikia supaprastinti klasę, tačiau statiniai metodai šio reikalavimo neturi. Jie gali būti paprasčiausiai iškviečiami naudojant klasės, kuri laiko statinį metodą, pavadinimą. Kitas svarbus skirtumas yra tas, kad nestatinis metodas paprastai turi nuorodą į objektą, kuris pavadino metodą, ir jį galima pasiekti naudojant šį raktinį žodį metodo viduje. Bet šis raktinis žodis negali būti naudojamas statiniuose metoduose, nes jie nėra susieti su konkrečiu objektu.