Menü Kapat

Kodların tərkibində olmazsa olmazlardan biri də dəyişənlərdir.Digər proqramlaşdırma dillərində olduğu kimi Javada da dəyişən anlayışı təməl anlayışlardan biridir və zaman keçdikcə işlənmə sıxlığını proqram nümunələrində özünüz də görəcəksiniz.

Dəyişənlər özlərində müxtəlif növ dəyərləri saxlaya bilən elementlərdir.İlk öncə dəyişənin elan olunmasına baxaq,aşağıdakı qaydada dəyişənlərimizi yarada bilərik:

Dəyişənin tipi    Dəyişənin adı;

Məsələn:

int a;

double ilkDəyişən;

String tələbəAdı;

boolean cavab;

Gördüyünüz nümunələrdə “int”,”double”,”String”,”boolean” dəyişən tipləri; ”a”,”ilkDəyişən”,”tələbəAdı”,”cavab” dəyişən adlarıdır.

Nümunələrdən də gördüyümüz kimi müxtəlif növ dəyişən tipləri vardır.Tiplərin müxtəlifliyinin səbəbi hər birinin özünəməxsus dəyərləri saxlamasıdır.Tam ədədlərin,kəsr ədədlərin,hərf və sözlərin və bu kimi digər dəyərlərin saxlanıldığı tiplər müxtəlifdir yəni, kəsr ədədlərini mənimsətdiyimiz bir dəyişənə hər hansı bir hərfi və ya sözü mənimsədə bilmərik.Dəyişənlərin elanı zamanı da mənimsətmək isdədiyimiz dəyəri nəzərə alıb buna uyğun dəyişən tipindən istifadə etməliyik.

Dəyişənlərin elanı zamanı əlimizdə olan dəyərə uyğun doğru dəyişən tipindən istifadə edə bilməyimiz üçün dəyişən tiplərini və onların saxlaya biləcəkləri dəyərləri öyrənək.

Dəyişən tipləri:

Dəyişən tipləri 2 qrupa ayrılır: 1)Primitiv tiplər və 2)Sinif tipləri

Primitiv tiplər:                                     IDE-də mövcud sinif tipləri:

  1. byte                                                   String
  2. short                                                   Byte
  3. int                                                      Short
  4. long                                                   İnteger
  5. float                                                    Long
  6. double                                                Float
  7. char                                                   Double
  8. boolean                                             Character
  9.   –                                                      Boolean   və başqaları.

Primitiv tiplərdən byte yaddaşda 1,short 2,int 4,long 8,float 4,double 8,char 2 bayt yer tutur.Bunlardan byte,short,int,long,float,double rəqəmsal tiplərdir yəni,bu tip dəyişənlərdə ədədlər saxlanılır.byte,short,int,long tipli dəyişənlər özlərində tam ədədləri,float və double tipli dəyişənlər isə özlərində kəsr tipli ədədləri saxlayır.

Belə bir sual yarana bilər ki, tam ədədləri saxlamaq üçün niyə 1 yox 4, kəsr ədədləri saxlamaq üçün 1 deyil 2 tip mövcuddur?Bunun səbəbi hər bir tipin özündə saxlaya biləcəyi ədəd aralığının müxtəlif olmasıdır.Bunu short və int tipləri üzərində izah edək:

short tipinin özündə saxlaya biləcəyi ədəd aralığı: -32.768,+32.767

int tipinin özündə saxlaya biləcəyi ədəd aralığı: -2.147.438.648,+2.147.438.647

Biz short tipli dəyişənə saxlaya biləcəyi aralıqdan bir dəyəri mənimsətsək heç bir problemlə qarşılaşmayacıq,lakin bu aralıqdan daha böyük ya da daha kiçik bir ədədi mənimsətmək lazım gəlsə nə etməliyik?Biz bu dəyəri short tipli dəyişənə mənimsətmək isdəsək İDE tərəfindən bu səhf olaraq qəbul ediləcək və proqramımız işə düşə bilməyəcəkdir.Belə bir vəziyyətdə daha geniş bir ədəd aralığına sahib olduğundan biz int tipindən istifadə etməliyik.Yeni bir sual ortaya çıxır ki,int özündə short tipinin aralığını da saxlayırsa short tipinin ayrıca mövcud olmasının bizə nə kimi xeyri var?Bu sualın cavabını biz yuxarıda izahlı şəkildə olmasa da vermişdik.short tipinin üstün cəhəti yaddaşda tutduğu yeridir.int tipinin ədəd aralığı geniş olsa da bununla bağlı olaraq o, yaddaşda da çox yer tutur.Lazım gəlmədikcə çox geniş ədəd aralığına malik tiplərdən(long tipi kimi) istifadə etmək məsləhət deyildir,əks halda siz boşuna yaddaş sahəsi zəbt etmiş olacaqsınız.

Primitiv tiplərdən char isə özündə simvolları saxlayır,lakin bu simvolların sayı məhduddur.cahar tipi yalnızca bir simvoldan ibarət olan dəyərləri daxilində tuta bilir.Məsələn: char a=’k’;-doğru,char a=’k1′;-yanlış.Simvol dedikdə bütün rəqəmlər,həriflər,işarələr nəzərdə tutulur.bollean isə məntiqi tipdir,özündə yalnız 2 qiyməti-true(doğru) və false(yanlış) saxlaya bilir.

Sinif tiplərinə baxdıqda isə String və primitiv tiplərə uyğun gələn digər sinif tiplərini görə bilərsiniz.(İnteger-int,Short-short,Character-char və b.)Adından da göründüyü kimi sinif tiplərinin hər biri bir sinifdir.Bizim qeyd etdiyimiz String,İnteger,Boolean və digər tiplər də sinif olmaqla İDE-nin kitabxanasında hazır şəkildə mövcuddur.Sinif tipləri yuxarıda qeyd etdiklərimizlə məhdudlaşmır,biz də yeni bir sinif yaradıb onu tip kimi istifadə edə bilərik.(Bu mövzuya sonrakı dərslərdə aydınlıq gətirəcəyik)Sinif tiplərinin primitiv tiplərdən əsas fərqi sinif tiplərinin birçox funksionallığa sahib olmasıdır.Dəyişənin adını yazıb nöqtə (.) işarəsini qoysanız İDE sizə kiçik pəncərə daxilində həmin funksionallıqları göstərəcəkdir.Gördüyünüz kimi primitiv tiplər kiçik həriflə başlasa da sinif tipləri böyük həriflə başlayır.Bunun səbəbi bizim də əvvəlki mövzudan bildiyimiz kimi siniflərin adlandırılmasındakı standartdır ki,siniflər adlandırılan zaman sözlər ilk hərifi böyük olmaqla bitişik yazılır.

String tipi özündə simvolları və simvollar topluluğunu saxlayır.char tipinin daha çox simvol saxlaya bilən forması kimi də baxa bilərik, lakin char tipi kimi bir simvol da saxlaya bilər.String tipinə daxilində simvol olmadan da dəyər mənimsətmək mümkündür. Məsələn, String söz=””;.Lakin bunu String söz=” “; ilə qarışdırmaq olmaz,çünki ikinci yazdığımız formada görməsək də artıq dəyişənə bir simvol mənimsədilmişdir.Bu simvol boşluq simvoludur.

Dəyişənlərin elanı zamanı dəyişən tipinə qərar verdikdən sonra dəyişənlərimizi təmsil edəcək dəyişən adlarına da qərar verməliyik.Dəyişənlərin adlandırılmasında boşluqdan istifadə oluna bilməz,əgər dəyişən adı 2 və daha çox sözdən ibarət olarsa,ilk söz kiçik həriflərlə yazılır,sonrakı sözlər də ilk hərifləri böyük digər hərifləri kiçik olmaqla,bitişik yazılır.Məsələn,“evUnvanı”,”qiymət”,”istifadəçidənGələnDəyər”.Göründüyü kimi dəyişən adı istənilən bir ifadə ola bilər.Dəyişən adları rəqəmlə başlaya bilməz lakin rəqəmlə bitə bilər.Yani,”1ad”-ola bilməz,”ad1”-ola bilər.İşarələrdən isə“$” işarəsi ilə başlaya bilər.

İndi isə dəyişənlərə dəyər mənimsədilməsini nəzərdən keçirək:

Dəyişənlərə dəyər mənimsədilməsi “=” operatoru vasitəsiylə həyata keçirilir.Dəyər mənimsədilməsinin bir neçə üsulu mövcuddur.

1)  int a;            2)  int a, b;        3)  int a=23,b=12;       4) int a=23;

int b;                 a=23;                                                  int b=12;

a=23;                 b=12;

b=12;

 

1)Ayrılıqda dəyişənlər elan olunmuş və sonradan tək tək dəyər mənimsədilmişdir.

2)Dəyişənlər birgə elan olunmuş və tək tək qiymət mənimsədilmişdir.

3)Dəyişənlər birlikdə elan olunmuş və eyni zamanda da dəyər mənimsədilmişdir.

4)Dəyişənlər tək tək elan olunmuş və elan olunarkən dəyər mənimsədilmişdir.

Dəyişənlərin birgə elanı yalnız eyni tipli dəyişənlər üçün mümkündür.Dəyişənlərə ilkin verilən dəyərdən sonra kod daxilində başqa bir dəyər mənimsədilərsə dəyişən daxilində artıq yeni dəyəri daşıyır.Məsələn:

String dəyişən=”Kitab”;

dəyişən=”Qələm”;

dəyişən=”Məktəb”;

“dəyişən” adlı dəyişənimizə müxtəlif dəyərlər mənimsədilsə də dəyişənimiz daxilində sonuncu dəyər olan “Məktəb”-i saxlayır.Yani dəyişənimizin qiymətini proqram daxilində dəyişə bilirik,lakin bu dəyişikliyin qarşısını almaq mümkündür.”final” açar sözü ilə bu prosses həyata keçirilir.Məsələn,

1) final String şəhər=”Bakı”;       ya da       2)final String şəhər;

şəhər=”Bakı”;

Artıq biz “şəhər” adlı dəyişənə başqa bir dəyər mənimsətmək isdəsək İDE bunu səhv olaraq qeyd edəcək və proqramı işə salmaq mümükün olmayacaq.Dəyişikliyi yalnız dəyişənə mənimsədilən ilk dəyəri dəyişməklə edə bilərik.

Aşağıdakı koda baxaq:

Bu kodu main metodumuzun daxilinə yazsaq,output hissəsində görərik:

Mənim adım Leyla.21 yaşım var.
Mənim adım Əli.14 yaşım var.

Gördüyünüz kimi iki nəticənin göstərilməsində də eyni dəyişənlərdən istifadə etdik lakin sonradan mənimsədilən dəyərlər müxtəlif olduğundan yazılan yazılar da müxtəlifdir.

“System.out.println();” ifadəsi daxilində sadəcə mətn tipli mılumatları deyil,dəyişənlərin malik olduğu dəyərləri də output hissəsinə yazdırmaq mümkündür.Bunun üçün “+”-dan istifadə olunur.

Kod daxilində dəyişənlərin elanı və dəyər mənimsədilməsi zamanı “;”(nöqtəli vergül) işarəsinə diqqət yetirilməlidir.