Struktura javového programu
-
Každý netriviální javový program sestává z více tříd (
class
) -
Třídy jsou členěny do balíků (packages)
-
U běžné "desktopové" aplikace představuje vždy jedna (evt. více) tříd vstupní bod do programu — je to třída/y obsahující metodu
main
.
Spuštění a běh javového programu
-
Spuštění programu se zahajuje vstupem do metody
main
. -
Běh programu spočívá ve vytváření objektů a interakci s nimi, tj. volání jejich metod.
-
Běh končí, jakmile jsou provedeny všechny příkazy aktivované metodou
main
.
Vývojové prostředí pro přednášky a cvičení
-
Pro demostraci na přednáškách v kurzu PB162 budeme převážně používat jednoduché, pro výuku určené, vývojové prostředí BlueJ.
-
Pro výuku ve cvičeních kurzu PB162 budeme již používat profesionální vývojové prostředí NetBeans.
Prostředí BlueJ
-
BlueJ je pro všechny platformy (Win, Linux, Mac OS X…) zdarma dostupné na http://bluej.org .
-
BlueJ je lokalizované pro češtinu vč. základního manuálu.
-
Pro BlueJ existuje i jednoduchý animátor běhu programů — vizualizuje spouštění a chod programů.
-
Toto prostředí je již předinstalované v síti FI.
Stažení BlueJ
-
BlueJ je již v síti FI instalováno, pro vlastní potřebu jej lze zdarma stáhnout z http://bluej.org .
-
Doporučujeme aktuální verzi — v současnosti (září 2015) BlueJ 3.1.1
-
Předtím je třeba mít korektně nainstalováno samotné vývojové prostředí Java.
Spuštění BlueJ
Po úspěšné instalaci na:
Windows:: Najděte v menu Start systému Windows složku BlueJ a zde spouštěcí odkaz BlueJ s ikonou ptáka.
Linux:: pomocí bluej
(odkaz je v /usr/bin
) — tím lze prostředí spustit.
Otevření hotového programu (projektu) v BlueJ
-
Každý javový program vytvořený v BlueJ představuje jeden projekt. Toto je specificky vlastnost BlueJ, ne Javy jako takové.
-
Práce s hotovým programem v BlueJ tedy znamená otevřít projekt → menu Projekt/Otevřít projekt.
Spuštění hotového programu
-
Každý běžný javový program spouštíme (nejen v BlueJ) aktivací metody
main
. -
V BlueJ to znamená kliknout pravým tlačítkem myši na ikoně příslušné třídy a vybrat
void main(String[] args)
. image:../images/bluej_exec_hello.png -
Při spuštění uvádíme parametry, které metoda
main
dostane. Jelikož zatím žádné specifikovat nepotřebujeme, ponecháme dialog, jak je a stiskneme Enter (klikneme OK). image:../images/bluej_exec_params.png -
Výsledek spuštění programu se projeví v tzv. okně terminálu (konzole) BlueJ. image:../images/bluej_console.png
Interaktivní vytvoření objektu (instance)
-
Objektový přístup znamená především to, že program za běhu vytváří objekty a volá jejich metody. To lze v BlueJ snadno realizovat.
-
V demostračním programu Hello máme jednu třídu (Hello), od níž lze vytvořit objekt (instanci) a na ní volat metody.
-
Zdrojový kód třídy Hello (dostupný poklepáním na její ikonu) prozradí, které metody zde máme k dispozici.
image:../images/hello_edit.png
-
Dále postupujeme:
-
Pravým tlačítkem klikneme na ikonu Hello a vybereme
new Hello()
. -
do dialogu uvedeme název odkazu na vytvářený objekt typu
Hello
- můžeme ponechathello1
.
image:../images/hello_new.png
-
Specifikace jména odkazu na novou instanci Hello
-
Vytvořený objekt (instance třídy
Hello
) je k dispozici jako červená krabička vlevo dole.
Práce s objektem (instancí)
-
Vytvořený objekt (instance
hello1
třídyHello
) je k dispozici jako červená krabička vlevo dole. Vytvořená instance třídy Hello -
S instancí je nyní možné komunikovat/interagovat - tj. volat metody.
-
Jelikož v úvahu (viz zdrojový kód
Hello
) připadá jen metodavoid go()
, zavoláme právě ji: -
Metoda proběhne s výsledkem podobným, jako když jsme program spouštěli metodou
main
. -
Výsledek spuštění
go()
Metoda main totiž realizovala postupně stejné kroky, jako jsme teď provedli interaktivně (krok po kroku) sami.
Úprava hotového programu v BlueJ
Nejjednodušší úpravou programu je změna těla některé z metod, v našem případě již známé metody go()
.
-
Editor zdrojového kódu třídy
Hello
aktivujeme pravým tlačítkem - položkou Otevřít v editoru. -
Kód metody
go()
změníme přepsáním hlášky"Hello, world"
na"Ahoj!"
. -
Po kliknutí na tlačítko Přeložit by se mělo objevit: Metoda
go()
upravena a třída úspěšně přeložena. -
Třídu Hello s upravenou metodou spustíme jako v předchozím - např. pravým tlačítkem a metodou main.
-
Objeví se: Výsledek běhu upravené třídy Hello