Skirtumas tarp egzemplioriaus kintamojo ir vietinio kintamojo

Egzemplioriaus kintamasis vs vietinis kintamasis

Egzemplioriaus kintamasis yra kintamojo tipas, esantis objektiniame programavime. Tai yra kintamasis, kuris yra apibrėžtas klasėje, ir kiekvienas tos klasės objektas turi atskirą to kintamojo kopiją. Kita vertus, vietinių kintamųjų naudojimas nėra ribojamas objektyvaus 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 sakoma, kad vietiniai kintamieji turi lokalią reikšmę.

Kas yra egzemplioriaus kintamasis?

Egzempliorių kintamieji naudojami į objektą orientuoto programavimo metu, 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“. Pavyzdžiui, kintamuosiuose saugomos vertės yra unikalios kiekvienam objektui (kiekvienas objektas turi atskirą kopiją), o jose saugomos vertės žymi to objekto būseną. Erdvės egzemplioriaus kintamajam skiriama krūvoje, kai tas objektas paskirstomas krūvoje. Todėl egzempliorių kintamieji saugomi atmintyje tol, kol objektas yra gyvas. Pavyzdžiui, vieno automobilio spalva nepriklauso nuo kito automobilio spalvos. Taigi automobilio objekto spalvą galima laikyti egzemplioriaus kintamajame. Praktikoje egzempliorių kintamieji deklaruojami klasių viduje ir išorės metoduose. Paprastai egzempliorių kintamieji deklaruojami kaip privatūs, kad jais būtų galima naudotis tik toje klasėje, kurioje jis deklaruojamas.

Kas yra vietinis kintamasis?

Vietiniai kintamieji yra kintamieji, turintys vietinę sritį, ir jie deklaruojami konkrečiame kodo bloke. Vietiniai kintamieji gali būti laikomi kintamaisiais, kurie naudojami metodui išsaugoti laikiną jo būseną. Vietinio kintamojo apimtis nustatoma naudojant vietą, kurioje kintamasis deklaruojamas, ir specialūs raktiniai žodžiai šiuo tikslu nenaudojami. Paprastai prieiga prie vietinio kintamojo yra apribota kodu, kurį jis deklaruoja (t. Y. Tarp to kodo bloko atidarymo ir uždarymo petnešų). Vietiniai kintamieji paprastai saugomi skambučių rinkinyje. Tai leistų rekursiniams funkcijų skambučiams išlaikyti savo vietinių kintamųjų kopijas, kurios būtų saugomos atskirose atminties adresų vietose. Kai metodas baigia jo vykdymą, iš skambučių kamino pasirodo informacija apie tą metodą ir sunaikinami saugomi vietiniai kintamieji..

Kuo skiriasi egzemplioriaus kintamasis nuo vietinio kintamojo?

Egzempliorių kintamieji deklaruojami klasėse, nepriklausančiose metodams, ir jie saugo objekto būseną, o vietiniai kintamieji deklaruojami kodų blokuose ir yra naudojami metodo būsenai saugoti. Egzemplioriaus kintamasis yra aktyvus tol, kol objektas, kuriame yra tas kintamasis, yra aktyvus, o vietinis kintamasis yra aktyvus vykdant tą metodą / kodo bloką. Egzemplioriaus kintamąjį (kuris yra paskelbtas viešuoju) galima pasiekti klasėje, tuo tarpu vietinį kintamąjį galima pasiekti tik tame kodų bloke, kuriame jis deklaruojamas. Egzistuojančių egzempliorių kintamieji gali būti naudojami tik į objektą orientuotą programavimą, tuo tarpu vietiniai kintamieji neturi tokio apribojimo.