Java

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:

  1. Napiš program, který po zadání známky vypíše známku ve formě textu (např. 2 – chvalitebně).
  2. Zjistěte, zda zadané číslo a patří nebo nepatří do intervalu <0,100>.
  3. Na vstupu je zadané číslo. Sestavte program, který zjistí, zda je číslo kladné, záporné nebo nula a vypíše o tom zprávu.
  4. 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.
  5. 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:

  1. 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.
  2. 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.
  3. 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.
  4. Vytvořte program pro zadání PIN do mobilu.
  5. Vytvořte program, který po zadání čísla spočítá jeho faktoriál.
  6. 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ě

  1. Vytvoř program, který spočítá součet prvků pole.
  2. Vytvoř program, který spočítá součin prvků pole.
  3. 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

  1. 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)
•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

  1. První konzolová aplikace
  2. První GUI aplikace
  3. Obsah složky projektu
  4. Události
  5. Změna vlastností

Pojmenování ovládacích prvků

•Volíme logická, smysluplná jména
(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)
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)
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