Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi oʻrtasidagi farq

Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi oʻrtasidagi farq
Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi oʻrtasidagi farq

Video: Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi oʻrtasidagi farq

Video: Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi oʻrtasidagi farq
Video: Oʻzgaruvchilari ajraladigan tenglamalar | Differensial tenglamalar 2024, Iyul
Anonim

Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi

Masal oʻzgaruvchisi obʼyektga yoʻn altirilgan dasturlashda mavjud boʻlgan oʻzgaruvchilar turidir. Bu sinfda aniqlangan o'zgaruvchidir va bu sinfning har bir ob'ekti ushbu o'zgaruvchining alohida nusxasiga ega. Boshqa tomondan, mahalliy o'zgaruvchilardan foydalanish faqat ob'ektga yo'n altirilgan dasturlash tillari bilan cheklanmaydi. Bu o'zgaruvchi bo'lib, uni faqat o'zi aniqlangan ma'lum bir kod bloki (masalan, funksiya, tsikl bloki va boshqalar) ichida baholash mumkin. Shu sababli, mahalliy oʻzgaruvchilar mahalliy qamrovga ega deb aytiladi.

Misol oʻzgaruvchisi nima?

Masalan oʻzgaruvchilari obʼyektga yoʻn altirilgan dasturlashda sinfdagi har bir obyekt holatini saqlash uchun ishlatiladi. Ular a'zo o'zgaruvchilari yoki maydon o'zgaruvchilari sifatida ham tanilgan. Misol o'zgaruvchilari Java'da statik kalit so'zdan foydalanmasdan e'lon qilinadi. Namuna o'zgaruvchilarida saqlanadigan qiymatlar har bir ob'ektga xosdir (har bir ob'ekt alohida nusxaga ega) va ularda saqlangan qiymatlar ushbu ob'ektning holatini ifodalaydi. Namuna o'zgaruvchisi uchun bo'sh joy, bu ob'ekt uyada ajratilganda, uyada ajratiladi. Shuning uchun, ob'ekt jonli ekan, misol o'zgaruvchilari xotirada saqlanadi. Masalan, bitta mashinaning rangi boshqa avtomobilning rangidan mustaqil. Shunday qilib, avtomobil ob'ektining rangi misol o'zgaruvchisida saqlanishi mumkin. Amalda, misol o'zgaruvchilari sinflar ichida va usullardan tashqarida e'lon qilinadi. Odatda, misol o'zgaruvchilari maxfiy deb e'lon qilinadi, shuning uchun ularga faqat u e'lon qilingan sinf ichida kirish mumkin.

Lokal oʻzgaruvchi nima?

Mahalliy oʻzgaruvchilar mahalliy qamrovga ega boʻlgan oʻzgaruvchilar boʻlib, ular maʼlum bir kod blokida eʼlon qilinadi. Mahalliy o'zgaruvchilarni vaqtinchalik holatini saqlash uchun usul tomonidan qo'llaniladigan o'zgaruvchilar sifatida ko'rish mumkin. Lokal o'zgaruvchining qamrovi o'zgaruvchi e'lon qilingan joydan foydalanib aniqlanadi va bu maqsadda maxsus kalit so'zlardan foydalanilmaydi. Odatda, mahalliy o'zgaruvchiga kirish u e'lon qilingan kod blokida (ya'ni, ushbu kod blokining ochilish va yopish qavslari orasida) cheklangan. Mahalliy o'zgaruvchilar odatda qo'ng'iroqlar to'plamida saqlanadi. Bu rekursiv funktsiya chaqiruvlariga mahalliy o'zgaruvchilarning o'z nusxalarini alohida xotira manzil maydonlarida saqlashga imkon beradi. Usul bajarilishini tugatgandan so'ng, ushbu usul haqidagi ma'lumotlar qo'ng'iroqlar to'plamidan chiqariladi va saqlangan mahalliy o'zgaruvchilar ham yo'q qilinadi.

Misol oʻzgaruvchisi va mahalliy oʻzgaruvchi oʻrtasidagi farq nima?

Masal oʻzgaruvchilari metodlardan tashqari sinflar ichida eʼlon qilinadi va ular obʼyekt holatini saqlaydi, mahalliy oʻzgaruvchilar esa kod bloklari ichida eʼlon qilinadi va ular usul holatini saqlash uchun ishlatiladi. Namuna o'zgaruvchisi ushbu o'zgaruvchini o'z ichiga olgan ob'ekt jonli ekan, mahalliy o'zgaruvchi esa ushbu usul/kod blokining bajarilishi davomida jonli bo'ladi. Misol o'zgaruvchisiga (ommaviy deb e'lon qilingan) sinf ichida kirish mumkin, mahalliy o'zgaruvchiga esa faqat u e'lon qilingan kod blokida kirish mumkin. Misol oʻzgaruvchilardan foydalanish faqat obʼyektga yoʻn altirilgan dasturlash bilan cheklangan, mahalliy oʻzgaruvchilarda esa bunday cheklov yoʻq.

Tavsiya: