3. diel - Premenné a typový systém v Jave
Z minulej lekcie, IntelliJ IDEA a prvá konzolová aplikácia, už vieme pracovať s IntelliJ a vytvoriť konzolovú aplikáciu.
V dnešnom Java tutoriále sa pozrieme na tzv. typový systém, ukážeme si základné dátové typy a prácu s premennými. Výsledkom bude jednoduchý program vypisujúci premennú.
Premenné
Než začneme riešiť dátové typy, poďme sa zhodnúť na tom, čo je to
premenná (programátori mi teraz určite odpustia zbytočné vysvetľovanie).
Určite poznáte z matematiky premennú (napr. x
), do ktorej sme si
mohli uložiť nejakú hodnotu, najčastejšie číslo. Premenná je v
informatike úplne to isté, je to miesto v pamäti počítača, kam si môžeme
uložiť nejaké dáta (meno užívateľa, aktuálny čas alebo databázu
článkov). Toto miesto má podľa typu premennej tiež vyhradenú
určitú veľkosť, ktorú premenná nesmie presiahnuť (napr. číslo nesmie
byť väčšie ako 2 147 483 647).
Premenná má vždy nejaký dátový typ, môže to byť číslo, znak, text a podobne, záleží na tom, na čo ju chceme používať. Väčšinou musíme pred prácou s premennou túto premennú najskôr tzv. deklarovať, čiže povedať jazyku, ako sa bude volať a akého dátového typu bude (aký v nej bude obsah). Jazyk ju v pamäti založí a až potom s ňou môžeme pracovať. Podľa dátového typu premennej si ju jazyk dokáže z pamäte načítať, modifikovať, prípadne ju v pamäti založiť. O každom dátovom type jazyk vie, koľko v pamäti zaberá miesta a ako s týmto kusom pamäte pracovať.
Typový systém
Existujú dva základné typové systémy, a to statický a dynamický.
Dynamický typový systém
Dynamický typový systém nás plne oprosťuje od toho, že premenná má vôbec nejaký dátový typ. Ona ho samozrejme vnútorne má, ale jazyk to nedáva najavo. Dynamické typovanie ide mnohokrát tak ďaleko, že premenné nemusíme ani deklarovať. Akonáhle do nejakej premennej niečo uložíme a jazyk zistí, že nebola nikdy deklarovaná, sám ju založí. Do tej istej premennej môžeme ukladať text, potom objekt užívateľa a potom desatinné číslo. Jazyk sa s tým sám vysporiada a vnútorne automaticky mení dátový typ. V týchto jazykoch ide vývoj rýchlejšie vďaka menšiemu množstvu kódu, zástupcovia sú napr. PHP alebo Ruby.
Statický typový systém
Statický typový systém naopak striktne vyžaduje definovať typ
premennej a tento typ je ďalej nemenný. Akonáhle premennú raz
deklarujeme, nie je možné jej dátový typ zmeniť. Akonáhle sa do textového
reťazca pokúsime uložiť objekt user
, dostaneme vynadané.
Java je staticky typovaný jazyk, všetky premenné musíme
najprv deklarovať s ich dátovým typom. Nevýhodou je, že vďaka
deklaráciám je zdrojový kód o niečo objemnejší a vývoj pomalší.
Obrovskou výhodou však je, že kompilátor nám pred spustením skontroluje,
či všetky dátové typy sedia. Dynamické typovanie síce vyzerá výhodne,
ale zdrojový kód nie je možné automaticky kontrolovať a keď niekde
očakávame objekt user
a príde nám tam namiesto toho desatinné
číslo, odhalí sa chyba až za behu a interpreter program zhodí. Naopak Java
nám nedovolí program ani skompilovať a na chybu nás upozorní (to je
ďalšia výhoda kompilácie).
Základné dátové typy
Poďme si teraz niečo naprogramovať, nech si nadobudnuté znalosti trochu osvojíme, s teóriou budeme pokračovať až nabudúce. Povedzme si teraz tri základné dátové typy:
- Celé čísla:
int
- Desatinné čísla:
double
- Textový reťazec:
String
String
píšeme s veľkým písmenom na začiatku,
časom sa dozvieme prečo.
Program vypisujúci premennú
Založíme si nový projekt, pomenujeme ho Output
(aj ku
všetkým ďalším príkladom si vždy založíme nový projekt). Náš kód
píšeme do tela metódy main()
. Tú tu zatiaľ nemáme. Umiestnime
teda kurzor medzi zložené zátvorky (do tela triedy Output
) a
napíšeme nasledujúci kód:
public static void main(String[] args) { }
Následne si skúsime nadeklarovať celočíselnú premennú a
,
dosadiť do nej číslo 56
a jej obsah vypísať do konzoly:
{JAVA_CONSOLE}
int a;
a = 56;
System.out.println(a);
{/JAVA_CONSOLE}
Deklarácia premennej
Prvý príkaz nám nadeklaruje novú premennú a
dátového typu
int
, premenná teda bude slúžiť na ukladanie celých
čísel.
Inicializácia premennej
Druhý príkaz vykonáva priradenie do premennej, slúži na to operátor
"rovná sa". Posledný príkaz je nám známy, vypíše do konzoly obsah
premennej a
. Konzola je múdra a vie vypísať aj číselné
premenné:
Konzolová aplikácia
56
Desatinná premenná
Pre desatinnú premennú by kód vyzeral takto:
{JAVA_CONSOLE}
double a;
a = 56.6;
System.out.println(a);
{/JAVA_CONSOLE}
Je to takmer rovnaké ako s celočíselnou premennou. Ako desatinný
oddeľovač používame bodku. Na konci desatinného čísla sa niekedy uvádza
ešte tzv. suffix, ktorý pri type double
používa písmeno D
V ďalších lekciách sa dozvieme, že pre desatinné čísla
existuje aj typ float
. U neho je nutné uviesť suffix
F
. Typ double
je východiskovým
typom pre desatinné čísla, suffix teda pri ňom nie je nutné použiť.
To je pre dnešnú lekciu všetko 🙂
V budúcej lekcii, Načítanie hodnôt z konzoly a parsovanie v Jave, sa pozrieme na načítanie hodnôt z konzoly, parsovanie dát a potom si vytvoríme jednoduchú kalkulačku.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 38x (1.62 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Java