Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 3 - Proměnné a typový systém v Javě

Z minulé lekce, Apache NetBeans, IntelliJ IDEA a první konzolová aplikace, již umíme pracovat s NetBeans, IntelliJ a vytvořit konzolovou aplikaci.

V dnešním Java tutoriálu se podíváme na tzv. typový systém, ukážeme si základní datové typy a práci s proměnnými. Výsledkem bude jednoduchý program vypisující proměnnou.

Proměnné

Než začneme řešit datové typy, pojďme se shodnout na tom, co je to proměnná (programátoři mi teď jistě odpustí zbytečné vysvětlování). Určitě znáte z matematiky proměnnou (např. x), do které jsme si mohli uložit nějakou hodnotu, nejčastěji číslo. Proměnná je v informatice naprosto to samé, je to místo v paměti počítače, kam si můžeme uložit nějaká data (jméno uživatele, aktuální čas nebo databázi článků). Toto místo má podle typu proměnné také vyhrazenou určitou velikost, kterou proměnná nesmí přesáhnout (např. číslo nesmí být větší než 2 147 483 647).

Proměnná má vždy nějaký datový typ, může to být číslo, znak, text a podobně, záleží na tom, k čemu ji chceme používat. Většinou musíme před prací s proměnnou tuto proměnnou nejdříve tzv. deklarovat, čili říci jazyku jak se bude jmenovat a jakého datového typu bude (jaký v ní bude obsah). Jazyk ji v paměti založí a teprve potom s ní můžeme pracovat. Podle datového typu proměnné si ji jazyk dokáže z paměti načíst, modifikovat, případně ji v paměti založit. O každém datovém typu jazyk ví, kolik v paměti zabírá místa a jak s tímto kusem paměti pracovat.

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 plně odstiňuje od toho, že proměnná má vůbec nějaký datový typ. Ona ho samozřejmě vnitřně má, ale jazyk to nedává najevo. Dynamické typování jde mnohdy tak daleko, že proměnné nemusíme ani deklarovat, jakmile do nějaké proměnné něco uložíme a jazyk zjistí, že nebyla nikdy deklarována, sám ji založí. Do té samé proměnné můžeme ukládat text, potom objekt uživatele a potom desetinné číslo. Jazyk se s tím sám popere a vnitřně automaticky mění datový typ. V těchto jazycích jde vývoj rychleji díky menšímu množství kódu, zástupci jsou např. PHP nebo Ruby.

Statický typový systém

Statický typový systém naopak striktně vyžaduje definovat typ proměnné a tento typ je dále neměnný. Jakmile proměnnou jednou deklarujeme, není možné její datový typ změnit. Jakmile se do textového řetězce pokusíme uložit objekt uzivatel, dostaneme vynadáno.

Java je staticky typovaný jazyk, všechny proměnné musíme nejprve deklarovat s jejich datovým typem. Nevýhodou je, že díky deklaracím je zdrojový kód poněkud objemnější a vývoj pomalejší. Obrovskou výhodou však je, že nám kompiler před spuštěním zkontroluje, zda všechny datové typy sedí. Dynamické typování sice vypadá jako výhodné, ale zdrojový kód není možné automaticky kontrolovat a když někde očekáváme objekt uživatel a přijde nám tam místo toho desetinné číslo, odhalí se chyba až za běhu a interpret program shodí. Naopak Java nám nedovolí program ani zkompilovat a na chybu nás upozorní (to je další výhoda kompilace).

Základní datové typy

Pojďme si nyní něco naprogramovat, ať si nabyté znalosti trochu osvojíme, s teorií budeme pokračovat až příště. Řekněme si nyní tři základní datové typy:

  • Celá čísla: int
  • Desetinná čísla: double
  • Textový řetězec: String

String píšeme s velkým písmenem na začátku, časem se dozvíme proč.

Program vypisující proměnnou

Založíme si nový projekt, pojmenujeme ho Vypis (i ke všem dalším příkladům si vždy založíme nový projekt). Náš kód píšeme do těla metody main(). Tu zde zatím nemáme. Umístíme tedy kurzor mezi složené závorky (do těla třídy Vypis) a napíšeme následující kód:

public static void main(String[] args) {

}

Následně si zkusíme nadeklarovat celočíselnou proměnnou a, dosadit do ní číslo 56 a její obsah vypsat do konzole:

int a;
a = 56;
System.out.println(a);

Deklarace proměnné

První příkaz nám nadeklaruje novou proměnnou a datového typu int, proměnná tedy bude sloužit pro ukládání celých čísel.

Inicializace proměnné

Druhý příkaz provádí přiřazení do proměnné, slouží k tomu operátor "rovná se". Poslední příkaz je nám známý, vypíše do konzole obsah proměnné a. Konzole je chytrá a umí vypsat i číselné proměnné:

Konzolová aplikace
56

Desetinná proměnná

Pro desetinnou proměnnou by kód vypadal takto:

double a;
a = 56.6;
System.out.println(a);

Je to téměř stejné jako s celočíselnou proměnnou. Jako desetinný oddělovač používáme tečku. Na konci desetinného čísla se někdy uvádí ještě tzv. suffix, který u typu double používá písmeno D.

V dalších lekcích se dozvíme, že pro desetinná čísla existuje také typ float. U něj je nutné uvést suffix F. Typ double je výchozím typem pro desetinná čísla, suffix tedy u něj není nutné použít.

To je pro dnešní lekci vše 🙂

V příští lekci, Načítání hodnot z konzole a parsování v Javě, se podíváme na načítání hodnot z konzole, parsování dat a poté si vytvoříme jednoduchou kalkulačku.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 3710x (2.59 kB)
Aplikace je včetně zdrojových kódů v jazyce Java

 

Předchozí článek
Apache NetBeans, IntelliJ IDEA a první konzolová aplikace
Všechny články v sekci
Základní konstrukce jazyka Java
Přeskočit článek
(nedoporučujeme)
Načítání hodnot z konzole a parsování v Javě
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
1232 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity