Java-da qlobal dəyişənlər
-
Java-da qlobal dəyişənlər tətbiqin istənilən yerindən əlçatan olan dəyişənlərdir. Bu dəyişənlərə bütün tətbiq boyunca müraciət etmək mümkündür. Qlobal dəyişən yaratmaq üçün
public
vəstatic
açar sözlərindən istifadə edilir:public class Numune { public static int a; public static int b; public static String str; }
Bu nümunədə
a
,b
vəstr
dəyişənləri qlobaldır və digər class-lardan birbaşa əlçatan olurlar:public class QlobalDeyisenDemo { public static void main(String[] args) { Numune.a = 4; Numune.b = 5; Numune.str = "Qlobal String dəyişəninin dəyəri"; System.out.println(Numune.a); System.out.println(Numune.b); System.out.println(Numune.str); } }
Bu kodu icra etdikdə aşağıdakı nəticəni görəcəyik:
4 5 Qlobal String dəyişəninin dəyəri
Qlobal dəyişənlər iki növə bölünə bilər:
- Dəyişdirilə bilən dəyişənlər.
- Yalnız oxuna bilən dəyişənlər (qlobal sabitlər).
Qlobal sabit yaratmaq üçün dəyişəni
final
açar sözü ilə təyin edib, ona dəyər mənimsətmək lazımdır:public class Sabitler { public static final double PI = 3.141592653589793; public static final String SALAM_DUNYA_STR = "Salam, Dünya!"; }
Java adlandırma konvensiyasına görə, bütün sabitlər böyük hərflərlə və sözlər arasında alt xətt (
_
) istifadə edilərək adlandırılmalıdır. Bu sabitlərin dəyərlərini dəyişmək mümkün deyil, lakin onları oxumaq mümkündür:public class SalamDunya { public static void main(String[] args) { System.out.println(Sabitler.SALAM_DUNYA_STR); } }
Nəticə:
Salam, Dünya!
Aşağıdakı nümunədə isə dairənin sahəsini hesablayan bir metod göstərilir:
public class SabitlerDemo { public static void main(String[] args) { double r = 10; String mesaj = String.format("Radiusu %f olan dairənin sahəsi=%f", r, daireSahesi(r)); System.out.println(mesaj); } static double daireSahesi(double r) { return Sabitler.PI * r * r; } }
Nəticə:
Radiusu 10.000000 olan dairənin sahəsi=314.159265
Qlobal dəyişənlərdən istifadə etməliyikmi?
İnternetdə qlobal dəyişənlərin istifadəsinin zərərli olduğunu bildirən çoxlu məqalələr mövcuddur. Gəlin, qlobal dəyişənlərin üstünlük və çatışmazlıqlarını nəzərdən keçirək ki, hər kəs öz nəticəsini çıxara bilsin.
Çatışmazlıqlar:
- Kodun oxunaqlılığı azalır və başa düşülməsi çətinləşir.
- Kodun saxlanması və dəstəklənməsi mürəkkəbləşir.
- Bir qlobal dəyişəni dəyişdirmək üçün bütün kodu analiz etmək lazımdır.
- Səhvlərin sayı artır və onları debug etmək çətinləşir.
Məsələn, bir qlobal dəyişən obyektlərdən ibarət bir massivdirsə, sistemin bir hissəsində bu massivdə sətirlər gözlənilir, digər hissəsində isə fərqli tipdə obyektlər ola bilər. Bu, uyğunsuzluqlara və səhvlərə səbəb ola bilər.
Üstünlüklər:
- Bəzi hallarda qlobal dəyişənlər kodun strukturunu sadələşdirə bilər.
- Kiçik layihələrdə və ya test məqsədləri üçün qlobal dəyişənlərdən istifadə etmək daha rahat ola bilər.
Lakin, ümumiyyətlə, qlobal dəyişənlərdən istifadə etməkdən çəkinmək və əvəzinə obyekt yönlü proqramlaşdırmanın prinsiplərinə uyğun olaraq məlumatları metodlar arasında ötürmək tövsiyə olunur.
Bilik paylaşdıqca artan bir sərvətdir