Nümunə Dəyişəninə qarşı Yerli Dəyişən
Nümunə dəyişəni obyekt yönümlü proqramlaşdırmada mövcud olan dəyişən növüdür. Bu, sinifdə müəyyən edilmiş dəyişəndir və həmin sinfin hər bir obyekti həmin dəyişənin ayrıca nüsxəsini saxlayır. Digər tərəfdən, yerli dəyişənlərin istifadəsi yalnız obyekt yönümlü proqramlaşdırma dilləri ilə məhdudlaşmır. Bu, yalnız müəyyən edildiyi kod blokunun (məsələn, funksiya, dövrə bloku və s.) daxilində qiymətləndirilə bilən dəyişəndir. Bu səbəbdən yerli dəyişənlərin yerli əhatə dairəsi olduğu deyilir.
Nümunə Dəyişən Nədir?
Nümunə dəyişənləri sinifdəki hər bir obyektin vəziyyətini saxlamaq üçün obyekt yönümlü proqramlaşdırmada istifadə olunur. Onlar həmçinin üzv dəyişənlər və ya sahə dəyişənləri kimi tanınırlar. Nümunə dəyişənləri Java-da statik açar sözdən istifadə etmədən elan edilir. Nümunə dəyişənlərində saxlanılan dəyərlər hər bir obyekt üçün unikaldır (hər obyektin ayrıca nüsxəsi var) və onlarda saxlanılan dəyərlər həmin obyektin vəziyyətini təmsil edir. Nümunə dəyişəni üçün yer yığında, həmin obyekt yığında ayrıldıqda ayrılır. Buna görə də, nümunə dəyişənləri obyekt canlı olduğu müddətcə yaddaşda saxlanılır. Məsələn, bir avtomobilin rəngi digər avtomobilin rəngindən asılı deyil. Beləliklə, avtomobil obyektinin rəngi nümunə dəyişənində saxlanıla bilər. Təcrübədə misal dəyişənləri siniflər daxilində və metodlardan kənarda elan edilir. Adətən, misal dəyişənləri özəl olaraq elan edilir ki, onlara yalnız elan olunduğu sinif daxilində daxil olmaq mümkün olsun.
Yerli Dəyişən nədir?
Yerli dəyişənlər yerli əhatə dairəsinə malik dəyişənlərdir və onlar xüsusi kod bloku daxilində elan edilir. Yerli dəyişənlər müvəqqəti vəziyyətini saxlamaq üçün metod tərəfindən istifadə olunan dəyişənlər kimi görünə bilər. Lokal dəyişənin əhatə dairəsi dəyişənin elan olunduğu yerdən istifadə etməklə müəyyən edilir və bu məqsəd üçün xüsusi açar sözlərdən istifadə edilmir. Tipik olaraq, yerli dəyişənə giriş onun elan edildiyi kod bloku daxilində məhdudlaşdırılır (yəni, həmin kod blokunun açılış və bağlanma mötərizələri arasında). Yerli dəyişənlər adətən zəng yığınında saxlanılır. Bu, rekursiv funksiya çağırışlarına yerli dəyişənlərin öz nüsxələrini ayrı yaddaş ünvan boşluqlarında saxlamağa imkan verəcək. Metod icrasını başa vurduqda həmin metod haqqında məlumat zəng yığınından çıxarılır, həmçinin saxlanılan yerli dəyişənlər məhv edilir.
Nümunə Dəyişən ilə Yerli Dəyişən arasında fərq nədir?
Nümunə dəyişənləri metodlardan kənar siniflər daxilində elan edilir və onlar obyektin vəziyyətini saxlayır, yerli dəyişənlər isə kod blokları daxilində elan edilir və metodun vəziyyətini saxlamaq üçün istifadə olunur. Nümunə dəyişəni, həmin dəyişəni ehtiva edən obyekt canlı olduğu müddətcə canlıdır, yerli dəyişən isə həmin metod/kod blokunun icrası zamanı canlıdır. Nümunə dəyişəninə (ictimai elan edilmiş) sinif daxilində daxil olmaq olar, yerli dəyişənə isə yalnız elan edildiyi kod blokunda daxil olmaq olar. Nümunə dəyişənlərinin istifadəsi yalnız obyekt yönümlü proqramlaşdırma ilə məhdudlaşır, yerli dəyişənlərdə isə belə məhdudiyyət yoxdur.