Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Java
Datové typy v Javě
java
25. července 2002, 00.00 | Chcete se naučit programovat v Javě? Sledujte tento seriál. První ucelenou a důležitou oblastí jsou datové typy a právě ty máme dnes na programu.
{Datové typy - úvod} Přiřazení hodnotyHodnota může být nejdříve přiřazena proměnné již při její deklaraci. Mimo to dále pak může být přiřazena kdekoliv v kódu (kde je platná).
Je zde jedna výjimka, u deklarace s klíčovým slovem final není již možné změnit její hodnotu jedná se totiž o konstantu.
Jistě nemusím připomínat, že u deklarací více proměnných stejného typu lze celý zápis zkrátit na jednu řádku:
|
Je také možno použít přiřazování hodnoty více proměnných najednou.
|
Paradoxně lze i přiřadit proměnné jiný typ, ten se ovšem před přiřazením přetypuje více si řekneme v části o přetypování.
|
Zrušení proměnné
Narozdíl od C++ není nutné tuto část nějak ošetřovat. Java v sobě nese Garbage Collection, který se sám stará o čištění paměti tj. o odstraňování proměnných či objektů, které již nebudou v následujícím kódu použity.
Přestože, je celý tento proces automatizovaný, lze ho do jisté míry ovlivňovat. Více informací se dozvíte v mém již dříve publikovaném článku Garbage Collection.
Primitivní datové typyTak se po dlouhé oklice dostáváme opravdu k datovým typům. Tyto primitivní datové typy občas nazýváme jako základní datové typy. Rozdělil bych je do několika druhů celočíselné, reální, znakové a ostatní.
Název typu |
Velikost |
Rozsah |
boolean | 1 bit | true či false |
byte | 1 bajt | od –128 do +127 |
short | 2 bajty | od –32768 do +32 767 |
int | 4 bajty | od –2147483648 do +2147483647 |
long | 8 bajtů | od –9223372036854775808 do +9223372036854775807 |
float | 4 bajty | +–3.40282347E+38 |
double | 8 bajtů | +–1.79769313486231570E+308 |
char | 2 bajty | 65536 různých znaků |
Velikost je závádějící číslo, protože tuto velikost používáte spíše jako možný rozsah. Neříká tedy absolutně nic o tom, kolik ve skutečnosti tento typ zabírá v paměti. Normálně by se to dalo zjistit přes sizeOf, ten ovšem Java nepodporuje.
Bylo by vcelku dobré si povšimnout, že všechny zde uvedené typy jsou symetrické tj. od – do +. Tím chci naznačit, že zde zcela chybí takové typy jako jsou v Pascalu Word, což jsou tzv. unsigned tj. nemají znaménko + či .
Pozor na byte: v Pascalu má rozsah od 0 do 255, ale v Javě je do –127 do +128. To vám může z počátku způsobovat problémy!
Tyto celočíselné typy v průběhu psaní zdrojového kódu můžete zapisovat několika rovnocennými způsoby:
- desítkově 1, 12, 128
- osmičkově 023, 0, 06 (začínají nulou)
- šestnásctkově 0xAF, 0x0, 0x12
Další skupinou jsou reálné typy neboli číslo s pohyblivou řádovou čárkou.
Název typu |
Velikost |
Rozsah |
float | 4 bajty | +–3.40282347E+38 |
double | 8 bajtů | +–1.79769313486231570E+308 |
Jak vidno obory hodnot obou typů jsou asymetrické. Naštěstí tyto typy jsou definovány stejně snad ve všech jazycích, takže zde nebude nastávat stejný problém jako u byte. V kódu je lze zapisovat následovně 1., –23.2, 5E+7, 3e-5 apod.
Musím dodat, že tyto typy mohou navíc obsahovat, pro někoho možná nepochopitelně, speciální hodnoty. Jsou jimi +–nekonečno a není číslo. K obou hodnotám se můžete propracovat standardními matematickými operacemi! Ukažme si příklad jak je získat či zjistit:
|
Mezi další druh primitivních datových typů zcela jistě patří znakové. Tento druh reprezentuje jediný zástupce a to char.
Název typu |
Velikost |
Rozsah |
char | 2 bajty | 65536 různých znaků |
Zde se již projevuje zmíněný Unicode, který způsobuje, že char není 1 bajtový jako ve většině jazyků a reprezentuje jen znak z aktuální znakové sady. Javou použitý způsob má tu výhodu, že můžete používat de-facto všechny známé znaky bez starostí jestli se dobře zobrazí.
[-more-]{Escape sekvence, další typy}Jenže jak tyto znaky zapisovat? Dobrá otázka.
- jako jediný znak např. všechny znaky z ASCII, což jsou anglické znaky např. 'A'. Jakékoliv jiné znaky s diakritikou a podobně se musí zapisovat následujícím způsobem
- escape sekvence tímto způsobem lze zapsat absolutně každý znak, ale vzhledem k jejich zjevné nečitelnosti se tento způsobe omezuje na minimum. Sekvence se skládá z zpětného lomítka následovaného čtveřicí šestnásctkových čísel tedy '\uXXXX'.
Tudíž podle následující tabulky budete muset všechny diakritické znaky zapisovat tímto způsobem např. 'á' zapíšete jako '\u00E1'.
00C1 Á | 010F ď | 00EE î | 00F6 ö | 00DA Ú |
00C2 Â | 00C9 É | 013D Ĺ | 0154 Ŕ | 00DC Ü |
00C4 Ä | 00CB Ë | 013E ĺ | 0158 Ř | 016F ů |
00E1 á | 011A Ě | 0147 Ň | 0155 ŕ | 00FA ú |
00E2 â | 00E9 é | 0148 ň | 0159 ř | 00FC ü |
00E4 ä | 00EB ë | 00D3 Ó | 0160 Š | 00DD Ý |
00DF ß | 011B ě | 00D4 Ô | 0161 š | 00FD Ý |
010C Č | 00CD Í | 00D6 Ö | 0164 Ť | 017D ý |
010D č | 00CE Î | 00F3 ó | 0165 ť | 017D Ž |
010E Ď | 00ED í | 00F4 ô | 016E Ů | 017E ž |
Asi bych měl dodat, že tento zápis je požadovaný pouze pro kód, který interpretuje překladač. Což znamená, že v komentářích můžete nadále psát pěkně česky, protože je překladač přeskakuje.
Poznámka autora: kdesi předtím, jsem mluvil o identifikátoru, že de-facto nemůže obsahovat diakritické znaky, což není zcela pravda. Např. identifikátor čítač by mohl vypadat takto (otázkou je zda je to čitelnější než když to napíšete v cestine tj. bez diakritiky):
|
Sekvence |
Hodnota |
Popis |
'\b' | \u0008 | zpět (backspace BS) |
'\t' | \u0009 | tabulator (tab) |
'\n' | \u000A | nový řádek (linefeed LF) |
'\r' | \u000D | začátek řádky (carriage return CR) |
'\"' | \u0022 | uvozovky (quote) |
'\'' | \u002C | apostrof (single quote) |
'\\' | \u005C | zpětné lomítko (backslash) |
Mezi jedny z posledních primitivních typů patří boolean logický datový typ.
Název typu |
Velikost |
Rozsah |
boolean | 1 bit | true či false |
Jelikož je oproti C v javě boolean pouze 1 bitový nelze do něj ukládat hodnotu 0 či 1, ale pouze true či false. Proto budete potřebovat umět tyto typy převádět, což není nic těžkého a ukážeme si to za pár odstavců.
|
Snad již posledním primitivním datovým typ je void prázdný datový typ. Ten se téměř výlučně používá u metod, které nic nevrací 1. Typickým představitel je metoda main.
|
Obsah seriálu (více o seriálu):
- Posezení u šálku kávy
- Komentáře
- Datové typy v Javě
- Operace s datovými typy
- Platnost proměnné
- Podmínky
- Cykly
- Break a continue
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007