1. Tam ədədlərin literalları
İndi isə yeni maraqlı mövzu — literallar. Birbaşa proqramın koduna yazılmış məlumatlara literallar deyilir. Bu halda söhbət hər hansı məlumatdan yox, primitiv tiplərin və String
tipinin dəyərlərindən gedir.
Məsələn, sizdə belə bir kod var:
Kod | Literallar |
---|---|
|
|
Literallar bu kodda — 5
sayı, 10
sayı və Sum=
sətridir.
Java dilində hər şey, o cümlədən literalların tipi var. Kodda olan bütün tam ədədlərin literalları (tam ədədlər) int
tipinə malikdir. int
tipi Java-da tam ədədlər üçün standart tipdir.
Bununla belə, kodunuzda tam ədəd literallarını byte
və ya short
tipli dəyişənə təyin etmək qərarına gəlsəniz, heç bir problem yaranmayacaq. Bir şərtlə ki, literalların dəyərləri dəyişən tipinin mümkün dəyərlər diapazonunda yerləşsin.
Java kompilyatoru kifayət qədər ağıllıdır ki, byte
tipli dəyişənə 100 ədədinin təyin edilə biləcəyini anlasın və heç bir problem yaranmasın.
Nümunələr:
Kod | Təsvir |
---|---|
|
Mükəmməl kompilyasiya olunur. |
|
Mükəmməl kompilyasiya olunur. |
|
Kompilyasiya xətası olacaq: maksimum byte tipinin dəyəri 127 -dir. |
Kodda həmçinin long
tipli literallar yaza bilərsiniz. Bunun üçün tam ədədin sonunda latın hərfi L və ya l yazmalısınız.
Nümunələr:
Kod | Təsvir |
---|---|
|
Mükəmməl kompilyasiya olunur. |
|
Kompilyasiya xətası: 3 milyard int tipli literal üçün çox böyükdür. |
|
Kompilyasiya xətası: literalın tipi long-dur, dəyişənin tipi isə int. Üstəlik, 3 milyard int tipli ədədlərin maksimum dəyərindən böyükdür. |
Dikkat ettinizmi, 10 və daha çox rəqəmi olan böyük ədədləri oxumaq nə qədər çətindir? Kodda 3 milyard olduğunu və ya 30 olduğunu dərhal başa düşmək olmur? Kodun oxunmasını asanlaşdırmaq üçün (bu vacibdir!), Java-da ədədi literallara alt xətt simvollarını daxil etməyə icazə verdilər (bunlar ədədin dəyərinə təsir etmir).
Yuxarıdakı nümunəni alt xətt simvollarından istifadə etməklə yenidən yazmaq olar və bu bir az daha aydın olacaq:
Kod | Təsvir |
---|---|
|
Mükəmməl kompilyasiya olunur. |
|
Kompilyasiya xətası: 3 milyard int tipli literal üçün çox böyükdür. |
|
Kompilyasiya xətası: literalın tipi long, dəyişənin tipi isə int. Üstəlik, 3 milyard int tipli maksimal dəyərdən böyükdür. |
Ədədi literal daxilində vergül istifadə etmək qadağan idi, çünki o artıq istifadə olunur. Məsələn, metodu çağırarkən arqumentləri bir-birindən ayırmaq üçün.
2. Üzən nöqtəli ədədlərin literalları
Kodda yalnız tam ədəd deyil, həm də üzən nöqtəli literalları (real ədədlər) təyin etmək olar.
Qayda çox sadədir: əgər kodda bir rəqəm var və onun yazılışında nöqtə mövcuddursa, bu rəqəm üzən nöqtəli literal olur. Və sadəcə literal deyil, double
tipli literal olur.
float tipli literal da yaratmaq olar, amma bunun üçün ədədin sonuna F (və ya f) hərfini əlavə etmək lazımdır.
Misallar:
Kod | Təsvir |
---|---|
|
Müvəffəqiyyətlə kompilyasiya olunur. |
|
Müvəffəqiyyətlə kompilyasiya olunur. |
|
Müvəffəqiyyətlə kompilyasiya olunur. |
|
Müvəffəqiyyətlə kompilyasiya olunur. |
|
Kompilyasiya xətası: dəyişən float tipindədir, literal isə double tipində. |
Bu arada, tam ədədi float və ya double tipinə çevirmək üçün sadəcə sonuna uyğun olaraq F (float üçün) və ya D (double üçün) əlavə etmək kifayətdir. Misallar:
Kod | Təsvir |
---|---|
|
Müvəffəqiyyətlə kompilyasiya olunur. |
|
Müvəffəqiyyətlə kompilyasiya olunur. |
|
Kompilyasiya xətası: dəyişən int tipindədir, literal double tipindədir. |
Üzən nöqtəli literalların bir də «elmi yazılış forması» var: rəqəmin işarəli hissəsinə əlavə olaraq onun onluq dərəcəsini də göstərmək olar. Misal:
Literal | Riyazi yazılışı | Nəticə dəyəri |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. Sətir literalları
Kodda həmçinin bütöv mətn sətirləri də müəyyənləşdirilə bilər. Kompilyator sətiri məhz məlumat (mətn sətiri) kimi qəbul etsin deyə, bütün sətir iki tərəfdən ikiqat dırnaq işarələri ilə əhatə olunur.
Əgər kod sətirində çoxlu ikiqat dırnaq işarəsi varsa, onlar cütlərə bölünür. Birinci ikiqat dırnaq işarəsi literalın başlanğıcını bildirir, ondan sonra gələn isə literalın sonunu. Ondan sonra gələn – yenə yeni literalın başlanğıcı, ondan sonra gələn – ikinci literalın sonu və s.
Hər belə literalın tipi String
-dir.
Nümunələr
Kod | İzah |
---|---|
|
Sətrin içində 5 literal var, hər biri bir simvoldan, + ibarətdir. |
|
Boş sətir literalı. Heç bir simvol olmayan sətir. |
|
Burada iki literal var. Nəticədə 2+3-5 olan bir sətir alınacaq, amma bu rəqəm deyil. |
|
Burada da iki literal var. Burada return operatoru yoxdur. |
Əgər mətn literalı çox uzundursa, onu bir neçə sətrə bölmək və «üstəgəl operatoru» ilə birləşdirmək olar:
Kod | İzah |
---|---|
|
Əgər bu sətir ekrana çıxarılarsa, bütün mətn bir sətirdə göstəriləcək! |
4. Simvol Literalları
Kodda təkcə sətir literalları deyil, həmçinin ayrıca simvolların literallarını da təyin etmək olar. Bu halda söhbət tək simvoldan ibarət olan sətirdən yox, char
tipinin literallarından gedir.
Simvol literalı tək dırnaqlarla çərçivələnir, sətri isə fərqli olaraq. Tək dırnaqların içərisində mütləq bir simvol olmalıdır və yalnız bir. Boş tək dırnaqlar ola bilməz.
Nümunələr:
Kod | İzah |
---|---|
|
char tipli literal. Latın hərfi A-nı ehtiva edir. |
|
char tipli literal. @ simvolunu ehtiva edir. |
|
char tipli literal. Yapon əlifbasının hieroqrafını ehtiva edir. Bəli, bu cür də mümkündür. |
|
char tipli literal. Unicode kodlaşdırmasından onun nömrəsi ilə təyin olunmuş simvolu ehtiva edir. |
Sonuncu nümunədə xüsusi yazı üsulu ilə Unicode kodlaşdırmasından simvol təyin olunur: əvvəlcə prefiks \u
, sonra isə 4 onaltılıq simvol gəlir. Bu barədə daha ətraflı növbəti mühazirələrdə danışılacaq.
GO TO FULL VERSION