Norint suprasti, kaip klasės, kintamieji ir metodai veikia Java, labai svarbu suprasti statinio ir nestatinio sąvokas. Nestatiniai nariai yra susieti su konkrečiais klasės egzemplioriais, o statiniai nariai yra susieti su klase. Šiame skyriuje mes palyginsime statinius ir nestatinius Java komponentus, pabrėždami jų skirtumus ir galimas programas.
Susijęs su
Statinis: Statiniai nariai (kintamieji ir metodai) yra susieti su pačia klase, o ne su atskirais egzemplioriais.
Nestatinis: Nestatiniai nariai yra būdingi kiekvienam klasės egzemplioriui, nes jie yra susieti su objektais, sukurtais iš klasės.
java žemėlapis
Atminties paskirstymas
Statinis: Statiniams nariams atmintis skiriama tik vieną kartą, klasės įkėlimo metu. Jie dalijami visiems klasės atvejams.
Nestatinis: Nestatiniams nariams atmintis yra skirta atskirai kiekvienam klasės egzemplioriui. Kiekvienas objektas turi savo nestatinių narių kopiją.
Prieiga
Statinis: Statinius narius galima pasiekti tiesiogiai naudojant klasės pavadinimą, po kurio nurodomas nario pavadinimas (pvz., ClassName.memberName). Jie pasiekiami iš bet kurios programos vietos.
Nestatinis: Nestatiniai nariai pasiekiami naudojant objekto nuorodą, po kurios nurodomas nario pavadinimas (pvz., objectReference.memberName). Jie būdingi tam tikram klasės egzemplioriui.
dvejetainė paieškos python
Inicijavimas
Statinis: Statiniai nariai inicijuojami, kai klasė įkeliama į atmintį, paprastai programos paleidimo metu. Inicijavimas įvyksta tik vieną kartą.
Nestatinis: Nestatiniai nariai inicijuojami, kai sukuriamas kiekvienas klasės egzempliorius, paprastai naudojant naują raktinį žodį. Kiekvienam objektui inicijuojama atskirai.
Taikymo sritis
Statinis: Statiniai nariai turi visuotinę apimtį ir gali būti pasiekiami iš bet kurios programos vietos, net nesukūrus klasės egzemplioriaus.
Nestatinis: Nestatiniai nariai turi vietinę taikymo sritį ir gali būti pasiekiami tik per klasės egzempliorių. Jie nepasiekiami nesukūrus objekto.
Prieiga prie narių
Statinis: Statiniai nariai gali pasiekti tik kitus tos pačios klasės statinius narius. Jie negali tiesiogiai pasiekti nestatinių narių.
Nestatinis: Nestatiniai nariai gali pasiekti tiek statinius, tiek nestatinius tos pačios klasės narius. Jie turi tiesioginę prieigą prie visų narių.
Naudojimas
Statinis: Statiniai nariai dažniausiai naudojami naudingumo metodams, konstantoms arba kintamiesiems, kurie nėra būdingi atskiriems atvejams. Pavyzdžiui, matematikos klasė, kurioje yra matematinių funkcijų.
grąžina masyvus Java
Nestatinis: Nestatiniai nariai naudojami konkrečiam egzemplioriui, nes juose saugomi duomenys, būdingi kiekvienam objektui. Pavyzdžiui, egzempliorių kintamieji, kuriuose saugomos unikalios kiekvieno objekto reikšmės.
Atminties efektyvumas
Statinis: Statiniai nariai atmintį sunaudoja tik vieną kartą, neatsižvelgiant į sukurtų egzempliorių skaičių. Jie gali taupyti atmintį, kai tie patys duomenys turi būti bendrinami visuose objektuose.