logo

Skirtumas tarp statinio ir nestatinio Java

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.