4. diel - Premenné a typový systém v Jave
Z minulej lekcie, IntelliJ IDEA a Copilot, už vieme pracovať s IntelliJ IDEA a máme nainštalovaného GitHub Copilota.
V dnešnom Java tutoriále si naprogramujeme našu prvú konzolovú aplikáciu. Pozrieme sa 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ú.
Náš prvý program Hello world
Je zaužívaným zvykom, že prvým programom v nejakom novom jazyku býva
tzv. Hello world. Ide o program, ktorý akýmkoľvek spôsobom používateľovi
zobrazí hlášku "Hello world", prípadne nejaký podobný text. Radšej
zopakujeme, že príkazy budeme písať do tela metódy main().
Na výpis textu slúži:
System.out.println("Text");
System je tzv. trieda. Pojmom trieda budeme
zatiaľ chápať súbor nejakých príkazov. Príkazom sa v Jave hovorí
metódy. System teda obsahuje metódy na obsluhu vstupov a
výstupov.
Na výstupe (out) voláme metódu println(), ktorá
vypíše text. Vidíme, že metódu na triede voláme pomocou operátora bodka.
Každá metóda môže obsahovať nejaké vstupné parametre, ktoré sa
zadávajú do zátvorky a sú oddelené čiarkou. V prípade metódy
println() je parametrom text na vypísanie.
Textu budeme hovoriť textový reťazec alebo len reťazec (anglicky string). Text budeme písať do úvodzoviek, aby tomu Java rozumela a nezamieňala ho s inými príkazmi. Aj keby metóda nemala žiadne parametre, zátvorka za ňou je povinná a bola by prázdna.
Príkazy píšeme na samostatné riadky a za každý píšeme bodkočiarku
(;).
Ak neviete, kde sa na klávesnici nachádza ;,
nájdete ju pod klávesom Esc:

Naša metóda main() teda bude teraz vyzerať nejako takto:
package onlineapp;
class Program
{
public static void main(String[] args) {
System.out.println("Hello ITnetwork!");
}
}
Môžeme si uľahčiť život využitím doplňovacích možností a namiesto
vypisovania System.out.println... môžeme napísať
sout a stlačiť Tab. IDE napíše
System.out.println("") za nás a ešte nám šikovne umiestni
kurzor priamo medzi úvodzovky.
Úvodzovky sú na slovenskej klávesnici na rovnakom klávese ako ô, ale píšeme ich s klávesom Shift:

Program teraz spustíme. Výstup nášho prvého programu bude vyzerať nejako takto:

GitHub Copilot
GitHub Copilot použijeme na vysvetlenie kódu. Otvoríme
Copilot chat a zadáme prompt: "Detailne mi vysvetli kód v metóde ako pre
úplného začiatočníka.". Copilot nám následne vysvetlí, čo program
v metóde Main robí:

Takéto vysvetlenie sa môže hodiť napríklad vtedy, keď narazíme na kód, ktorému úplne nerozumieme. Je však dobré mať na pamäti, že AI môže urobiť chybu, preto je vždy dôležité premýšľať nad tým, či vysvetlenie dáva zmysel.
Gratulujeme, práve ste sa stali programátorom 😊
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ý.
Statický typový systém
Statický typový systém 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é teda musíme najprv deklarovať s ich dátovým typom. Nevýhodou je, že kvôli deklaráciám je zdrojový kód o niečo objemnejší a vývoj pomalší. Obrovskou výhodou však je, že nám kompilátor pred spustením skontroluje, či všetky dátové typy sedia.
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 premenná nebola nikdy deklarovaná, sám ju založí. Do tej istej premennej môžeme ukladať text, potom objekt používateľa a potom desatinné číslo. Jazyk sa s tým sám vysporiada a dátový typ vnútorne automaticky zmení. V týchto jazykoch ide vývoj rýchlejšie vďaka menšiemu množstvu kódu. Zástupcami sú napr. PHP alebo Ruby.
Dynamické typovanie síce pôsobí ako výhodnejšie, ale zdrojový kód nie
je možné automaticky kontrolovať. Keď niekde očakávame objekt
user, ale príde nám namiesto toho desatinné číslo, chyba sa
odhalí až za behu programu, ktorý interpreter zhodí. Naopak Java nám
nedovolí program ani skompilovať a na chybu nás upozorní.
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ásledne si
skúsime nadeklarovať celočíselnú premennú a, dosadiť do nej
číslo 56 a jej obsah vypísať do konzoly. Kód napíšeme do
tela metódy main():
{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 🙂
Zhrnutie lekcie
Kód programu v Jave zapisujeme do metódy main() a text do
konzoly vypisujeme pomocou System.out.println(). Premenná je
miesto v pamäti na uloženie hodnoty. V Jave ju musíme najprv deklarovať
spolu s dátovým typom, pretože Java je staticky typovaný jazyk. Základné
dátové typy v tejto lekcii boli int pre celé čísla,
double pre desatinné čísla a String pre text.
Premenné potom môžeme naplniť hodnotou a ich obsah vypísať do konzoly.
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é 151x (5.9 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Java

David sa informačné technológie naučil na