Java-da Literallar

All lectures for TK purposes
Dereje , Sapak
Elýeterli

1. San Literallary

Indi täze we gyzykly tema - literallar. Programma kodynda göni ýazylan maglumatlara literallar diýilýär. Bu ýerde islendik maglumat däl-de, primitiw tiplaryň we String tipiniň gymmatlyklary barada gürrüň gidýär.

Meselem, sizde şeýle kod bar:

Kod Literallar
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

Bu kodda literallar5, 10 we Sum=.

Java dilinde typ ýokdur diýen zat ýok, hatda literallaryňam typlary bar. Kodyň içinde ähli san literallary (integer) int tipinda bolýar. Int tipi — Java-da sanlar üçin esasy typdyr.

Şonuň üçin, eger siz kodyňyzda san literaly byte ýa-da short tipli üýtgeýjä berseňiz, hiç hili problema ýok. Diňe literalyň gymmaty üýtgeýjiniň typynyň rugsat berýän aralygynda bolmaly.

Java kompilýatory ýeterlik derejede akylly, byte tipli üýtgeýjä 100 san literaly berilse, hiç hili problema ýok.

Mysallar:

Kod Düşündiriş
int a = 300;
Çuňlukly kompilýasiýa bolýar.
byte a = 100; 
Çuňlukly kompilýasiýa bolýar.
byte a = 300; 
Kompilýasiýa ýalňyşlygy: byte üçin maks. gymmat 127.

Kodda long tipli literallary ýazmak hem bolýar. Munuň üçin sanyň ahyrynda L ýa-da l harplaryny ýazmaly.

Mysallar:

Kod Düşündiriş
long a = 3000000000L; 
Çuňlukly kompilýasiýa bolýar.
long a = 3000000000; 
Kompilýasiýa ýalňyşlygy: 3 milliard int üçin gaty uly.
int a = 3000000000L; 
Kompilýasiýa ýalňyşlygy: literalyň tipi long, üýtgeýjiniň tipi int. 3 milliard int üçin gaty uly.

Uly sanlary okamak kyn, şeýle dälmi? Ine, bu ýerde 3 milliard bardyr, ýa-da 30? Kod okamak üçin (bu möhümdir!), Java-da san literallaryna ýerüsti çyzyk (underscore) goşmaga rugsat berdiler (bu çyzgy sanyň gymmatyna täsir etmeýär).

Öňki mysaly ýerüsti çyzyklar bilen şeýle edip ýazmak bolýar we has düşnükli:

Kod Düşündiriş
long a = 3_000_000_000L; 
Çuňlukly kompilýasiýa bolýar.
long a = 3_000_000_000; 
Kompilýasiýa ýalňyşlygy: 3 milliard int üçin gaty uly.
int a = 3_000_000_000L; 
Kompilýasiýa ýalňyşlygy: literalyň tipi long, üýtgeýjiniň tipi int. 3 milliard int üçin gaty uly.

Sanyň içinde vergül ulanyp bolmaýar, çünki ol eýýäm ulanýar. Mysal üçin, metoda argumentleri aýyrmak üçin.



2. Goşmaça Sany Literallary

Koda diňe integer däl, eýsem, flotirlen san literallaryny (goşmaça fantastiki sanlar) hem ýazyp bolýar.

Aslynda, bu ýerde bir ýönekeý düzgün bar: eger kodyň içinde san we onuň içinde nokat bar bolsa, bu san - flotirlen san literaly. Hem-de diňe literaly bolman, double tipli literaly.

Float типli literaly hem döredip bolýar, ýöne muny üçin sanyň ahyryna F (ýa-da f) harplaryny ýazmaly.

Mysallar:

Kod Düşündiriş
double a = 100.0; 
Çuňlukly kompilýasiýa bolýar.
double a = 100.;
Çuňlukly kompilýasiýa bolýar.
double a = .0;
Çuňlukly kompilýasiýa bolýar.
float a = 100.0f; 
Çuňlukly kompilýasiýa bolýar.
float a = 100.0; 
Kompilýasiýa ýalňyşlygy: üýtgeýji float, literaly double.

Aýratynlyk bilen, integer literaly float ýa-da double tipine göýbermek bolýar, diňe soňuna F (float üçin) ýa-da D (double üçin) goşmaly. Mysallar:

Kod Düşündiriş
double a = 100D; 
Çuňlukly kompilýasiýa bolýar.
float a = 100F; 
Çuňlukly kompilýasiýa bolýar.
int a = 300D; 
Kompilýasiýa ýalňyşlygy: üýtgeýji типы int, literaly double.

Flotirlen san literallarynyň bir "ylym görnüşindäki ýazgysy" bar: sanlaryň ýanaşyk böleginden başgada, onuň onluk derejeli bölegini hem görkezmek bolýar. Mysal:

Literaly Matematiki ýazgy Soňky gymmaty
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. String Literallary

Kodda şeýle hem uzyn tekst setirlerini ýazyp bolýar. Kompilýator setiri maglumat (setir) hökmünde kabul etmegi üçin, ähli setir ýokarda we aşakda goşa dyngy belgisi bilen örtülýär.

Bir setir kodynda köp goşa dyngy belgisi bar bolsa, olar jübütlenýär. Ilki goşa dyngy belgisi literaly başlaýar, ondan soňky bolsa, literalyň soňy bolýar. Ondan soňky bolsa, täze literalyň başlangyjy bolýar, ondan soňky bolsa, ikinji literalyň soňy bolýar. Şeýlelikde dowam edýär.

Her bir onuň ýaly literalyň tipi String.

Mysallar

Kod Paýhas
"+" + "+" + "+" + "+" + "+"
Setirde 5 literallar bar, olardan her biri bir simwol +
""
Literaly boş setir. Simwolsyz setir.
"2+3" + "-5"
Bu ýerde iki literallar bar. Ahyrky gymmat 2+3-5 setiri bolýar, emma san däl
"return" + ";"
Bu ýerde hem iki literallar bar. Return operasiýa ýok.

Setir literaly gaty uzyn bolsa, ony birnäçe setire bölüp, "plus operator" bilen birikdirip bolýar:

Kod Paýhas
String s = "Buryýa mgloyuň asmany ýapýar "
         + "Gar bolýar гар agyp "
         + "Wagtynda, ol mümkin - it ýuwsyr "
         + "Mümkin aglar ýaly - çaga";
Eger bu setiri ekrana çykarsak, ähli tekst bir setir bolup çykýar!


4. Char Literallary

Kodda diňe bir setir literallaryny däl, eýsem, aýratyn simwol literallaryny hem ýazyp bolýar. Bu ýerde bir simwoldan ybarat setir däl-de, char tipli literallar barada gürrüň gidýär.

Simwol literaly ýeke dyngy belgileri bilen örtülýär, setirdän tapawutlylykda. Ýörite bir simwol, diňe bir simwol bolmaly, ýeke dyngy belgileri boş bolup bilmeýär.

Mysallar:

Kod Paýhas
'A'
Char literaly. Latyn A harpy bar.
'@' 
Char literaly. @ simwoly bar
'' 
Char literaly. Ýapon alfabitynyň bir heroýu bar. Hawa, beýle hem bolýar.
'\u1f3a'
Char literaly. Unicode kodirlik simwoly, onuň nomeri bilen görkezilýär.

Soňky mysalda Unicode kodirlik simwoly ýörite ýazgylary bilen bardyr: başlangyç prefiks \u bar, soňra 4 on sekizlik simwol bar. Munuň hakda has giňişleýin ýakyn leýksiýalarda maglumat alarsyňyz.


Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION