Instances mainīgais vs vietējais mainīgais
Instances mainīgais ir mainīgā tips, kas atrodas objektorientētā programmēšanā. Tas ir mainīgais, kas definēts klasē, un katram šīs klases objektam ir atsevišķa šī mainīgā kopija. No otras puses, lokālo mainīgo izmantošana neaprobežojas tikai ar objektorientētām programmēšanas valodām. Tas ir mainīgais, kuru var novērtēt tikai noteiktā koda blokā (piemēram, funkcija, cilpas bloks utt.), Kurā tas ir definēts. Šī iemesla dēļ tiek uzskatīts, ka lokālajiem mainīgajiem ir lokāla darbības joma.
Kas ir instances mainīgais?
Gadījuma mainīgie tiek izmantoti objektorientētā programmēšanā, lai saglabātu katra objekta stāvokli klasē. Tos sauc arī par dalībnieku mainīgajiem vai lauka mainīgajiem. Piemēri mainīgie tiek deklarēti, Java neizmantojot statisko atslēgvārdu. Vērtības, kas tiek glabātas, piemēram, mainīgajos, katram objektam ir unikālas (katram objektam ir atsevišķa kopija), un tajās saglabātās vērtības atspoguļo šī objekta stāvokli. Vieta instances mainīgajam tiek piešķirta kaudzē, kad šis objekts tiek piešķirts kaudzē. Tāpēc instances mainīgie tiek saglabāti atmiņā, kamēr objekts ir dzīvs. Piemēram, vienas automašīnas krāsa nav atkarīga no citas automašīnas krāsas. Tātad automašīnas objekta krāsu var saglabāt instances mainīgajā. Praksē gadījumu mainīgie tiek deklarēti klasēs un ārpus metodēm. Parastigadījumu mainīgie tiek deklarēti kā privāti, lai tiem varētu piekļūt tikai tajā klasē, kurā tā ir deklarēta.
Kas ir vietējais mainīgais?
Vietējie mainīgie ir mainīgie ar lokālu darbības jomu, un tie tiek deklarēti noteiktā kodu blokā. Vietējos mainīgos var uzskatīt par mainīgajiem, kurus metode izmanto, lai saglabātu tā pagaidu stāvokli. Vietējā mainīgā apjomu nosaka, izmantojot mainīgā deklarēto atrašanās vietu, un šim nolūkam netiek izmantoti īpaši atslēgvārdi. Parasti piekļuve lokālajam mainīgajam ir ierobežota tā koda blokā, par kuru tas ir deklarēts (ti, starp šī koda bloka atvēršanas un aizvēršanas stiprinājumiem). Vietējie mainīgie parasti tiek glabāti zvanu kaudzē. Tas ļautu rekursīvo funkciju izsaukumiem saglabāt savas lokālo mainīgo kopijas, kas tiek glabātas atsevišķās atmiņas adrešu telpās. Kad metode pabeidz izpildi, informācija par šo metodi tiek parādīta no zvanu kaudzes, iznīcinot arī glabātos lokālos mainīgos.
Kāda ir atšķirība starp instances mainīgo un lokālo mainīgo?
Piemēri mainīgie tiek deklarēti klasēs ārpus metodēm, un tie saglabā objekta stāvokli, savukārt vietējie mainīgie tiek deklarēti kodu blokos, un tos izmanto metodes stāvokļa glabāšanai. Instances mainīgais ir aktīvs, kamēr objekts, kurā atrodas šis mainīgais, ir aktīvs, savukārt vietējais mainīgais ir dzīvs šīs metodes / koda bloka izpildes laikā. Instances mainīgajam (kas ir deklarēts kā publisks) var piekļūt klasē, turpretim lokālajam mainīgajam var piekļūt tikai tajā koda blokā, kurā tas ir deklarēts. Piemēra mainīgo izmantošana ir ierobežota tikai ar objektorientētu programmēšanu, savukārt vietējiem mainīgajiem nav šāda ierobežojuma.