Egzempliorių kintamasis vs vietinis kintamasis
Egzempliorių kintamasis yra kintamojo tipas, kuris yra objektiniame programavime. Tai kintamasis, kuris yra apibrėžtas klasėje, ir kiekvienas tos klasės objektas turi atskirą to kintamojo kopiją. Kita vertus, vietinių kintamųjų naudojimas neapsiriboja objektinėmis programavimo kalbomis. Tai kintamasis, kurį galima įvertinti tik tam tikrame kodo bloke (pvz., funkcija, ciklo blokas ir kt.), kuriame jis apibrėžtas. Dėl šios priežasties vietiniai kintamieji turi vietinę apimtį.
Kas yra egzempliorių kintamasis?
Egzempliorių kintamieji naudojami objektiniame programavime, siekiant išsaugoti kiekvieno objekto būseną klasėje. Jie taip pat žinomi kaip narių kintamieji arba lauko kintamieji. Egzempliorių kintamieji deklaruojami nenaudojant statinio raktinio žodžio Java. Elementų kintamuosiuose saugomos reikšmės kiekvienam objektui yra unikalios (kiekvienas objektas turi atskirą kopiją), o juose saugomos reikšmės atspindi to objekto būseną. Vieta egzemplioriaus kintamajam paskirstoma krūvoje, kai tas objektas priskiriamas krūvoje. Todėl egzempliorių kintamieji saugomi atmintyje tol, kol objektas veikia. Pavyzdžiui, vieno automobilio spalva nepriklauso nuo kito automobilio spalvos. Taigi automobilio objekto spalva gali būti saugoma egzemplioriaus kintamajame. Praktiškai egzempliorių kintamieji deklaruojami klasėse ir išoriniuose metoduose. Paprastai egzempliorių kintamieji deklaruojami kaip privatūs, todėl juos būtų galima pasiekti tik toje klasėje, kuri yra deklaruojama.
Kas yra vietinis kintamasis?
Vietiniai kintamieji yra kintamieji, turintys vietinę taikymo sritį, ir jie deklaruojami tam tikrame kodo bloke. Vietiniai kintamieji gali būti laikomi kintamaisiais, kurie naudojami taikant metodą laikinajai būsenai išsaugoti. Vietinio kintamojo apimtis nustatoma pagal vietą, kurioje kintamasis deklaruojamas, o specialūs raktiniai žodžiai šiam tikslui nenaudojami. Paprastai prieiga prie vietinio kintamojo yra apribota kodo bloke, kuriame jis deklaruojamas (t. y. tarp to kodo bloko pradžios ir uždarymo skliaustų). Vietiniai kintamieji paprastai saugomi skambučių krūvoje. Tai leistų rekursiniams funkcijų iškvietimams išlaikyti savo vietinių kintamųjų kopijas, kurios būtų saugomos atskirose atminties adresų erdvėse. Kai metodas baigs vykdyti, informacija apie tą metodą iškyla iš iškvietimų krūvos, taip pat sunaikinami vietiniai kintamieji, kurie buvo saugomi.
Kuo skiriasi egzempliorių kintamasis ir vietinis kintamasis?
Egzempliorių kintamieji deklaruojami klasėse už metodų ribų ir saugo objekto būseną, o vietiniai kintamieji deklaruojami kodų blokuose ir naudojami metodo būsenai saugoti. Pavyzdžio kintamasis veikia tol, kol objektas, kuriame yra tas kintamasis, veikia, o vietinis kintamasis veikia to metodo / kodo bloko vykdymo metu. Egzempliorių kintamąjį (kuris paskelbtas viešu) galima pasiekti klasėje, o vietinį kintamąjį galima pasiekti tik kodo bloke, kuriame jis deklaruotas. Egzempliorių kintamieji naudojami tik objektiniam programavimui, o vietiniams kintamiesiems tokių apribojimų nėra.