1. díl – Úvod do jazyka Java
2. díl – NetBeans IDE a první konzolová aplikace
3. díl – Proměnné, typový systém a parsování
Načítání hodnot se řídí použitým datovým typem – volíme vždy správnou metodu
int:
int i; i = sc.nextInt();
double:
double d; d = sc.nextDouble();
string – celý řádek:
String s; s = sc.nextLine();
string – řetězec do bíleho znaku (mezera)
String s; s = sc.next();
Je nutné dát pozor, v tomto případě zůstává zbytek (řádku včetně jeho ukončení (Enter)) nenačten.
char :
char znak; znak = sc.nextLine().char.At(0);
Pozn. Jde vlastně o načtení celého řádku a vybrání pouze prvního znaku.
Cvičení k 3. lekci Javy
4. díl – Typový systém podruhé: Datové typy
5. díl – Podmínky (větvení)
Řešte příklady:
- Napiš program, který po zadání známky vypíše známku ve formě textu (např. 2 – chvalitebně).
- Zjistěte, zda zadané číslo a patří nebo nepatří do intervalu <0,100>.
- Na vstupu je zadané číslo. Sestavte program, který zjistí, zda je číslo kladné, záporné nebo nula a vypíše o tom zprávu.
- Na vstupu jsou zadány velikosti drah v km a časů v h dvou automobilů. Sestavte program, který spočítá jejich průměrnou rychlost a zjistí, které auto je rychlejší a o kolik.
- Napište program, který ze zadané hodnoty průměru vypočítá objem kulového zásobníku na vodu. Výslednou hodnotu nechte vypsat na obrazovku jak v metrech krychlových, tak v litrech. Dále předpokládejme, že tento zásobník je umístěn v pouštní základně, kterou obývá n osadníků, kde n je proměná, jejíž hodnotu budeme zadávat. Program rovněž vypíše, na kolik dní vystačí voda v zásobníku při spotřebě 10 litrů na osobu a den, kde spotreba bude proměnná, jejíž hodnotu můžete měnit zadáním z klávesnice.
Poznámka: k výpočtu objemu budete potřebovat „Math.PI“. Použijte tedy buď vlastní konstantu, nebo použijte funkci Pi.
6. díl – Cykly v Javě
Řešte příklady:
- Najdi největšího společného dělitele dvou přirozených čísel pomocí Eukleidova algoritmu:
Mějme dána dvě přirozená čísla, uložená v proměnných u a v (u>v). Dokud v není nulové, opakuj: Do r ulož zbytek po dělení čísla u číslem v Do u ulož v Do v ulož r Konec algoritmu, v u je uložen největší společný dělitel původních čísel.
- Napište program, který vypočítá ciferný součet zadaného celého (kladného i záporného) čísla a vypíše jej. Použijte k tomu cyklus while.
- Napište program, který na obrazovce vytvoří čtverec ze znaků „*“ o uživatelem zadané velikosti strany (počet dílků). Omezte zadání velikosti strany na menší počet např. na 20.
- Vytvořte program pro zadání PIN do mobilu.
- Vytvořte program, který po zadání čísla spočítá jeho faktoriál.
- Vytvořte program, který po zadání hmotnosti v kg a výšky v cm spočítá BMI a vypíše, zda má nadváhu, obezitu… Pomocí cyklu while ošetřete možnost dalšího výpočtu BMI.
7. díl – Pole v Javě
- Vytvoř program, který spočítá součet prvků pole.
- Vytvoř program, který spočítá součin prvků pole.
- Uživatel napíše slovo a program ho vypíše pozpátku.
8. díl – Textové řetězce v Javě podruhé – práce s jednotlivými znaky
9. díl – Textové řetězce v Javě do třetice – Split
- Uživatel napíše větu a program spočítá počet slov ve větě (slova jsou odděleny mezerami). Využijte funkci split. Dále vypíše slova z věty pozpátku a seřadí slova podle abecedy.
10. díl – Vícerozměrná pole v Javě
11. díl – Matematické funkce v Java a knihovna Math
Programujeme jednoduchou hru v Javě: Šibenice
Programujeme jednoduchou hru v Javě: Logik
Materiály
–dokumentace a tutoriály na webu oracle.com
–Pecinovský (hodně na objekty)
–Thinking in Java (bruceeckel.com, 3rd edition zdarma)
–nepřímo Moderní programování
Architektura platformy Java
Platforma Java
•Nadstavba operačního systému
–vrstva mezi OS a aplikací
–běhové prostředí
–knihovny
•Multiplatformní
–Windows
–Linux
–MacOS
–SunOS
Edice
•SE – Standard Edition – základní, desktopové aplikace
•EE – Enterprise Edition – podnikové aplikace, webové aplikace
•ME – Micro Edition – zařízení spotřební elektroniky
Verze
•Současná verze 7 (3/2013)
•Instalace ze stránek oracle.com
Běhové prostředí
•JRE – Java Runtime Environment
•JVM – Java Virtual Machine
•Zajišťuje
–vyhledávání všech součástí programu (tříd)
–automatickou správu paměti
–kontrolu polí
–přístupová oprávnění
–překlad za běhu
Překlad programu
1.Při vývoji programu
•ve vývojovém prostředí
•programovací jazyk à mezikód (bajtkód)
2.Za běhu programu
•v běhovém prostředí
•mezikód (bajtkód) à strojový kód
•Dvoufázový překlad zajišťuje platformovou nezávislost
Mezikód
•Bajtkód – Java Byte Code
•Jazyk podobný assembleru
Programovací jazyk
•Java jako programovací jazyk – záleží na velikosti písmen!!!
(nejen platforma)
(nejen platforma)
•Podobný C#
•Jiné jazyky, které se překládají do bajtkódu
Scala
Dokumentace
•Web společnosti Oracle
http://docs.oracle.com/javase
Vývojová prostředí
•JDK – Java Development Kit
–řádkový překladač javac.exe
•NetBeans (oracle.com) odkaz na stažení
•Eclipse (eclipse.org)
•BlueJ
–pro výuku
•…
První ukázky – pdf soubory – manuál
Pojmenování ovládacích prvků
•Volíme logická, smysluplná jména
(např. poleAdresa, políčkoSleva, tlačítkoZobraz)
(např. poleAdresa, políčkoSleva, tlačítkoZobraz)
•Důležité pro přehlednost programu
•Na funkci nemá vliv
•Ve jméně nesmí být mezera, nesmí začínat číslicí
•Konvence: Více slov spojíme do jednoho, každé další má první písmeno velké
Rozbor projektů
•*.java – zdrojové kódy
•Program členěn na třídy
•*.class – třídy přeložené do bajtkódu
•*.form – návrhy oken (pro práci Návrháře)
•Hexa prohlídka souborů class
•dist/*.jar – spustitelná jednotka, Java Archive, zabalené soubory class, normální ZIP
Přenos programů
•Uživateli dist/*.jar
•Programování na jiném počítači – celá složka projektu
Nástroje příkazového řádku
•javac.exe – překladač
•java.exe – spouštění programů
•javaw.exe – totéž, ale bez konzole
Události
•Program s grafickým uživatelským rozhraním je řízen událostmi
•Událost
–Klepnutí myší
–Posun myši
–Stisk klávesy
–Stisk tlačítka
–Výběr z nabídky
–…
Reakce na události
•Na různé události může náš program reagovat
•Vytváříme obslužné podprogramy událostí
•Pojem podprogram
•Pojem metoda
•Události jsou řešením otázky KDY
(kdy bude náš program něco dělat)
(kdy bude náš program něco dělat)
Příklad
•Okno se dvěma tlačítky
•Tlačítko 1: Ukončení programu
•Tlačítko 2: Zobrazení zprávy
•
•Obsluha události Action tlačítka 1
•Příkazy řeší otázku CO
(co bude program dělat)
(co bude program dělat)
Syntaktické chyby
•Ukázka
•Prohřešky proti pravidlům programovacího jazyka
•Překlad při uložení
Pokračování příkladu
•Událost Action tlačítka 2
•Další události
Práce s ovládacími prvky
Technologie pro GUI
•Swing – podporuje NetBeans
•SWT – podporuje Eclipse
Ovládací prvky
•Základní sada
–textové pole JTextField
–popisek JLabel
–zaškrtávací políčko JCheckBox
–tlačítko JButton
Knihovna Swing
Práce s vlastnostmi
•Metody setXXX – nastavení vlastnosti
•Metody getXXX – zjištění hodnoty vlastnosti
–případně isXXX – pro logické hodnoty
•Ukázky
Vstupy, výstupy
Datové typy
•int – celá čísla
•double – desetinná čísla
•String – textové řetězce
•boolean – logické hodnoty true/false
Proměnné
•Deklarace
–názevTypu názevProměnné;
–názevTypu názevProměnné = počátečníHodnota;
•Lokální proměnné
•Členské proměnné okna
Přiřazovací příkaz
•kam = co;
Vstupy
•Řetězec
–txtPole.getText
•Číslo – nutný převod
–Integer.parseInt
–Double.parseDouble
•Logická hodnota
políčko.isSelected
Výstup
•JTextField – setText
•JOptionPane – showMessageDialog
•JTextArea – setText, appendText, \n
•
•Převod na řetězec
–sčítání s řetězcem
–String.valueOf
Výrazy
•Aritmetické operátory
+, -, *, /, %
•Celočíselné dělení
•Složená přiřazení
+=, -=, …
•Inkrementace, dekrementace
++, —
•Matematické funkce
–třída Math
Podmínky a cykly
Řídicí konstrukce if
if (podmínka)
příkaz;
if (podmínka)
{
příkaz1;
příkaz2;
…
příkazN;
}
Zápis podmínky
•Podmínka ~ hodnota typu bool (true/false)
–Hodnota proměnné
–Hodnota vlastnosti
–Hodnota výrazu
–
•Podmínka splněna = hodnota je true
Podmínky
•Ze zaškrtávacího políčka
•Relační operátory
<, <=, >, >=, ==, !=
•Řetězce se testují na rovnost metodou Equals
Složené podmínky
•&&
•||
•!
Cykly
•for
•while
•do-while
•Rozšířený for (foreach)
Objekty a třídy
Třídy
•Program/knihovna v Javě děleny na třídy
•Ze tříd možno vytvářet instance (objekty)
Dokumentace
•Co umí objekt dané třídy
Balíčky
•Vyšší celek nad třídami (~jmenný prostor)
•Konvence – obrácená internetová adresa
•Balíčku odpovídá adresářová struktura!
•Implicitní balíček
•Importy
Další
•Pole
•Indexované seznamy
•Výjimky, které je nutno řešit
•Hodnotové a odkazové typy
•Detaily syntaxe OOP