Programovßnφ v jazyce Java

Kurz programovßnφ v Jav∞ - 6. dφl

 ┌vodem  |  Kurz programovßnφ v Jav∞  |  Soubory ke sta₧enφ  |  Otßzky a odpov∞di

 

┌vod

Vφtejte u ÜestΘho pokraΦovßnφ kurzu pro zaΦßteΦnφky, dnes probereme literßly a klφΦovß slova.

Literßly

Literßl je hodnota zapsanß do zdrojovΘho k≤du, kterß se p°i°adφ prom∞nnΘ. Hodnota m∙₧e b²t jednoduchΘho datovΘho typu, objektovΘho typu String, nebo typu null.

Literßly
Literßly Reprezentujφ
celoΦφselnΘ celß Φφsla
reßlnΘ Φφsla s desetinnou Φßstφ
logickΘ dv∞ hodnoty: true a false
znakovΘ znaky
°et∞zcovΘ °et∞zce
null "nic"


CeloΦφselnΘ literßly

CeloΦφselnΘ literßly mohou b²t zapsßny t°emi zp∙soby a to bu∩ v desφtkovΘ soustav∞ (decimßlnφ), nebo ÜestnßctkovΘ (hexadecimßlnφ), nebo osmiΦkovΘ (oktalovΘ). Nesmφ obsahovat desetinnou teΦku, proto₧e by to byl literßl reßln²ch Φφsel. TakΘ nesmφ obsahovat ₧ßdnΘ mezery, pouze Φφsla. M∙₧ou obsahovat znamΘnko + nebo - p°ed literßlem (unßrnφ plus nebo mφnus).

CeloΦφselnΘ literßly
Typ zßpisu Mo₧nosti zßpisu
desφtkov² 0 - 9
Üestnßckov² 0 X 0 - 9 a A - F
osmiΦkov² 0 + 0 - 7

CeloΦφseln² literßl je automaticky typu int, pokud chcete typ long musφte za literßl napsat l nebo L, ale velkΘ L je lepÜφ, kv∙li tomu, ₧e si ho nelze splΘst s 1 (jedniΦkou, zßle₧φ na fontu).

V desφtkovΘm zßpisu literßl∙ lze pou₧φt znak 0 a vÜechny znaky Φφslic od 1 do 9, nap°.: 1803.

èestnßctkov² zaΦφnß znaky 0x nebo 0X (nula a x) za kter²mi nßsleduje Üestnßckovß Φφslice. èestnßctkovß Φφslice m∙₧e obsahovat znay Φφslic 0 a₧ 9, Φφslice 10 a₧ 15 jsou reprezentovßn² znaky a/A a₧ f/F, na velikosti pφsmen nezßle₧φ, ale je lepÜφ pou₧φvat bu∩ velkß, nebo malß pφsmena, proto₧e to bude p°ehledn∞jÜφ.

Poslednφ zßpis je zßpis osmiΦkov², pro ten m∙₧ete pou₧φt jen Φφsla 0 a₧ 7. OsmiΦkov² zßpis musφ zaΦφnat nulou.

Te∩ nßsleduje pßr p°φklad∙ zßpis∙:

P°φklady pou₧itφ celoΦφseln²ch literßl∙
...
	  
int a = 39206;		  // desφtkov² zßpis
int b = - 946;
long al = 483L;		  // literßl typu long

int c = 0X6AF;		  // Üestnßctkov² zßpis
int d = - 0X84B;
long bl = - 0XA94L;	  // literßl typu long

int e = 0463;		  // osmiΦkov² zßpis
int f = - 0672;
long cl = 0128L;	  	  // literßl typu long
	  
...
	  

U t∞chto p°φpad∙ deklarace prom∞nn²ch typu long se nemusel pou₧φt literßl typu long, proto₧e by se automaticky p°etypoval z typu int (stejn∞ jako na vÜechny "menÜφ", pokud se rozsahem vejdou), zde to bylo pou₧ito pouze jako ukßzka (ale zßpis je to sprßvn²).


Literßly reßln²ch Φφsel

Literßly reßln²ch Φφsel reprezentujφ hodnoty Φφsel s desetinnou Φßtφ. OdliÜφme je od celoΦφseln²ch literßlu, tφm, ₧e obsahujφ bu∩ destinnou teΦku, nebo exponent. Implicitn∞ jsou literßly reßln²ch Φφsel typu double, pokud chcete literßl typu float musφte za literßl napsat znak f (malΘ nebo velkΘ, je to jedno). Pro p°ehlednost m∙₧ete literßly typu double psßt s d/D.

Literßly reßln²ch Φφsel
P°φklady zßpis∙ Matematick² v²znam
8.6 8,6
.5 0,5
3. 3,0
1.5e10 / 1.5E10 1,510
3e-6 / 3E-6 3-6

Pokud by vßm nebylo n∞co jasnΘ na Φφslech s exponentem, je to jednoduchΘ, napφÜeme Φφslo, za Φφslo malΘ, nebo velkΘ E a pak u₧ jen kladn², nebo zßporn² exponent. Nap°.: 1000 se napφÜe 10e3.

P°φklad pou₧φtφ literßl∙ reßln²ch Φφsel
...

float f1 = 34.62f;
float f2 = 3.f;
double d1 = 6.8e10d;
double d2 = .4;

...
	  

VÜechny tyto mo₧nosti jsou mo₧nΘ, ale jak jsem ji₧ n∞kolikrßt °ekl, vyberte si jednu mo₧nost, a tΘ se dr₧te. Nemusφte stßle pou₧φvat jednu mo₧nost, ale v jednom programu urΦit∞ ano, nap°. piÜte vÜechny "dopl≥kovΘ" znaky (neΦφselnΘ) malΘ, nebo velkΘ.

Zßpis .4 nelze napsat bez desetinnΘ teΦky, proto₧e by to byl celoΦφseln² literßl.


LogickΘ literßly

LogickΘ literßly jsou dva: true a false. T∞chto hodnot m∙₧e nab²vat pouze prom∞nnß typu boolean. Sice true a false nepat°φ mezi klφΦovß slova, ani by nem∞li, proto₧e to jsou literßly, nelze je, stejn∞ jako ostatnφ literßly pou₧φt jako identifikßtory.

LogickΘ literßly
Literßl V²znam
true pravda
false nepravda
P°φklad pou₧itφ logick²ch literßl∙
...
	  
boolean b1 = true;
boolean b2 = false;

...
	  

ZnakovΘ literßly

ZnakovΘ literßly vyu₧ijeme vÜude tam, kde je oΦekßvßna prom∞nnß typu char. Java pou₧φvß znakovou sadu Unicode, to znamenß, ₧e ka₧d² znak mß p°id∞leno 16 bit∙ pam∞ti, to dohromady dßvß 65536 znak∙. Kdy₧ chceme prom∞nnΘ typu char p°i°adit n∞jak² znak uzav°eme ho do jednoduch²ch uvozovek. Mimo znak∙ existujφ specißlnφ znaky, kterΘ se vyjad°ujφ pomocφ escape sekvencφ. Escape sekvence obsahuje jako prvnφ znak v₧dy zp∞tnΘ lomφtko a jeden dalÜφ znak, nap°.: '\n' pro nov² °ßdek. Unicode znaky lze psßt p°φmo pomocφ Φφsel, kterΘ jednotlivΘ znaky reprezentujφ, zaΦφnßjφcφ zp∞tn²m lomφtkem, nßsledujφcφm znakem u a Φty°mφstn²m hexadecimßlnφm Φφslem reprezentujφcφm znak, nap°.: '\u06AE'.

ZnakovΘ literßly
Zßpis Poznßmka
'znak' lze pou₧φt vÜechny znaky krom∞ znaku ' (apostrof) a \ (zp∞tnΘ lomφtko)
'escape sekvence' znakovß, unicode, nebo oktalovß

P°φklad pou₧itφ znakov²ch literßl∙
...

char ch1 = 'A';  // znak A
char ch2 = 65;  // znak A pomocφ jeho Φφsla v sad∞ Unicode reps. ASCII
char ch3 = '\u0041';  // znak A

...
	  

╪et∞zcovΘ literßly

Pou₧φvajφ se tam, kde pot°ebujeme textov² °et∞zec. Uvozujφ se do normßlnφch uvozovek ". ╪et∞zec se m∙₧e sklßdat ze ₧ßdnΘho, jednoho nebo vφce znak∙. Proto₧e se °et∞zec sklßdß z jednotliv²ch znak∙, platφ pro °et∞zce stejnΘ zßpisy jako pro znaky. Mezi uvozovkami m∙₧ete psßt znaky a escape sekvence dohromady.

╪et∞zcovΘ literßly
Zßpis Poznßmka
"°et∞zec" lze pou₧φt vÜechny znaky krom∞ znaku ' (apostrof) a \ (zp∞tnΘ lomφtko)

P°φklad pou₧itφ °et∞zcov²ch literßl∙
...
	  
String s1 = "\u0041hoj"; // Ahoj
String s2 = "\t";
String s3 = "Dlouhy\nretezec";

...
	  

Nullov² literßl

Tento literßl mß pouze tvar null. Jeho pou₧φtφ uvidφte a₧ s objekty. Pro p°edstavu jak se pou₧φvß, zde uvßdφm p°φklad obkjektu typu String.

P°φklad pou₧itφ null
...
	  
String s = null;
	  
...
	  

Nezapome≥te, ₧e null je literßl, nelze jej tedy pou₧φt jako identifikßtor.


Escape sekvence

Escape sekvence se pou₧φvajφ ve znakov²ch a °et∞zcov²ch literßlech. Je to vφce znak∙ reprezentujφcφ jeden znak. Pokud t°eba pot°ebuje prom∞nnou typu char a v nφ mφt ulo₧en² znak tabulßtor, prßv∞ nap°φklad na takovΘ v∞ci jsou escape sekvence. V nßsledujφcφ tabulce najdete vÜechny escape sekvence specißlnφch znak∙, kterΘ lze pou₧φt.

Escape sekvence
Escape sekvence Unicode esc. sekvence V²znam
\b \u0008 backspace - BS
\t \u0009 tabulßtor - HT
\n \u000A linefeed - LF
\f form feed - FF
\r \u000D carriage return - CR
\" \u0022 uvozovky - "
\' \u002C jednoduchΘ uvozovky - '
\\ \u005C backslash (zp∞tnΘ lomφtko) - \
OktalovΘ escape sekvence - Lze pou₧φt stejnΘ jako v prog. jazyku C, vÜechny lze
vyjßd°it Unicode esc. sekvencemi
Unicode escape sekvence - znaky \u0000 a₧ \u00FF jsou vyhrazeny pro
esc. sekvence


KlφΦovß slova

KlφΦovß slova jsou slova rezervovanß v jazyce Java, kterΘ nelze pou₧φt jako identifikßtory. ZezaΦßtku byly rezervovßny i n∞kterß jinß slova.

KlφΦovß slova v Jav∞
	  
abstract    default    if            private      this
boolean     do         implements    protected    throw
break       double     import        public       throws
byte        else       instanceof    return       transient
case        extends    int           short        try
catch       final      interface     static       void
char        finally    long          strictfp     volatile
class       float      native        super        while
const       for        new           switch
continue    goto       package       synchronized
	  

Slova const, goto, zatφm nejsou pou₧ita v Jav∞, ale jsou rezervovßna, tak je nelze pou₧φt.


Zßv∞r

Dostali jsme se na konec 6. dφlu o programovßnφ v Jav∞. Probrali jsme literßly, kterΘ mo₧nß moc zßbavnΘ nebyli :-), ale je dobrΘ znßt jejich mo₧nΘ zßpisy, proto₧e p°i programovßnφ u₧ nebude Φas na to, abyste stßle hledali r∙znΘ mo₧nosti zßpis∙. KlφΦovß slova je takΘ dobrΘ znßt, proto₧e chyba v programu, kde jste jako nßzev prom∞nnΘ pou₧ili klφΦovΘ slovo, m∙₧e b²t zßke°nß.



Alen Dvo°ßk