3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java Studijní cíl V tomto bloku navážeme na konec předchozího bloku a seznámíme se s vývojovými prostředími, které se nejčastěji používají při vývoji aplikací v jazyce Java, se základními prvky jazyka Java a také s konvencemi jazyka, které budeme důsledně dodržovat.
Doba nutná k nastudování
2 – 2,5 hodiny
3.1 Vývojová prostředí pro vývoj aplikací v jazyce Java V závěru bloku 2 jsme si vyzkoušeli kompilaci a spuštění programu z příkazové řádky, což je v některých případech velmi užitečná záležitost (zejména při spojení s využíváním parametrů příkazů), nicméně z důvodu efektivity práce a pohodlí při psaní programů se standardně používá vývojové prostředí. Pro vývoj aplikací v programovacím jazyce je k dispozici celá řada vývojových prostředí a výběr toho pravého je individuální záležitostí. Cílem této kapitoly není uvést vyčerpávající přehled všech prostředí, ale uvést základní přehled nejčastěji používaných. Nejzákladnější možností pro vývoj aplikací je samozřejmě používání libovolného textového editoru, který umí pracovat s prostým textem. Při použití textového editoru pro kompilaci a spuštění používáme příkazy javac a java tak, jak jsme si je představili v minulém bloku. Příklad použití textového editoru je uveden na obrázku – některé pokročilejší textové procesory umí zvýrazňovat klíčová slova nebo i další prvky syntaxe jazyka (viz Obrázek 1).
Obrázek 1: Textový editor Notepad++ pro zápis zdroj. kódu jazyka Java
KST/IZAPR - Základy programování
blok 3, strana 1 (8)
Michael Bažant
Ve výuce budeme standardně používat vývojové prostředí Netbeans, které je dobrou volnou mezi nabízenými vývojovými prostředími. Je k dispozici zdarma a používání základních možností prostředí je velmi intuitivní (viz Obrázek 2).
Obrázek 2: Vývojové prostředí NetBeans
Dalším velmi často používaným vývojovým prostředím je prostředí Eclipse (viz Obrázek 3).
Obrázek 3: Vývojové prostředí Eclipse
Mezi další prostředí používaná pro vývoj aplikací v jazyce Java jsou: IntelliJ IDEA, Oracle JDeveloper, BlueJ, JBuilder atd. Jak již bylo uvedeno v přechozích odstavcích, budeme v celém kurzu používat vývojové prostředí NetBeans, a proto (tam kde to bude účelné) budou voleny obrázky z tohoto vývojového prostředí. Obecně lze říci, že v ostatních prostře-
KST/IZAPR - Základy programování
blok 3, strana 2 (8)
Michael Bažant
dích je možné dosáhnout podobné funkcionality (toto tvrzení platí pro základní funkce, za jejichž hranice se v tomto kurzu nedostaneme), jen jinými postupy.
3.2 Základní prvky jazyka Java V této kapitole si představíme základní prvky, ze kterých se skládá programovací jazyk Java. Důležitou poznámkou na úvod výkladu detailů týkajících se jazyka Java je fakt, že tento jazyk důsledně rozlišuje (až na výjimky, které si uvedeme v dalším textu) malá a velká písmena (jedná se tzv. case sensitive jazyk). Některé jiné programovací jazyky mezi malými a velkými písmeny nerozlišují. Tam, kde to užitečné, si také dané prvky jazyky budeme demonstrovat na krátkých příkladech. Mezi základní prvky jazyka Java patří: Komentáře Klíčová slova (rezervovaná) Příkazy Bloky Proměnné Tyto prvky jazyka si představíme podrobněji v následujících podkapitolách.
3.2.1 Komentáře Velmi často používaným prvkem (nejen v jazyce Java, ale obecně ve všech programovacích jazycích) jsou komentáře. V jazyce Java je možné používat hned několik možností pro zapsání komentáře, mezi něž patří: komentář do konce řádku – začíná dvěma znaky „/“ a je platný až do konce řádku Příklad: int i; //promenna je typu int víceřádkový komentář – začíná dvojicí znaků „/*“, na každém řádku je znak „*“ a končí dvojicí znaků „*/“ Příklad: /* * Toto je komentar na * vice radku */ jednořádkový komentář – je obdobou víceřádkového komentáře. Začíná dvojicí znaků „/*“ a končí dvojicí znaků na stejném řádku „*/“ Příklad: /* Toto je komentar na cely radek. */
KST/IZAPR - Základy programování
blok 3, strana 3 (8)
Michael Bažant
dokumentační komentář – je v zásadě stejný jako v případě víceřádkového komentáře jen s tím rozdílem, že je v jeho úvodu použita dvojice znaků „**“. Dokumentační komentáře se používají pro automatické generování dokumentace zdrojového kódu. Ukázka generování dokumentace Javadoc v prostředí NetBeans je uvedena na následujícím obrázku (viz Obrázek 4). Generovanou dokumentaci lze prohlížet přímo v prostředí NetBeans (položka menu Window – Other - Javadoc) nebo HTML prohlížečem ve složce projektu „dist\javadoc\index.html“. Příklad: /** * Tyto komentare lze * vyuzit pri vytvareni dokumentace * s vyuzitim nastroje JavaDoc */
Obrázek 4: Generování dokumentace z dokumentačních komentářů v prostředí NetBeans
3.2.2 Klíčová slova Dalším základním prvek jazyka jsou klíčová slova, což jsou elementy definované přímo jako součást gramatiky jazyka. Tato slova nelze uživatelsky měnit a pro volbu vlastních identifikátorů proměnných je nutné volit názvy, které nebudou identické s rezervovanými slovy. Přehled všech rezervovaných slov je uveden v následujícím obrázku (viz ). K významu (sémantice) jednotlivých slov se dostaneme v průběhu dalšího výkladu, případně v dalších navazujících předmětech. Kromě těchto rezervovaných slov disponuje jazyk literály (doslovnými hodnotami), které za klíčová slova lze považovat. Jsou jimi slova true, false, null.
KST/IZAPR - Základy programování
blok 3, strana 4 (8)
Michael Bažant
Obrázek 5: Rezervovaná slova v jazyce Java
3.2.3 Příkazy Programy se skládají z různých typů příkazů, které reprezentují akce nebo skupiny akcí a končí středníkem. Problematice příkazů bude věnována detailnější pozornost v další části materiálu, neboť je tento prvek jazyka velmi rozsáhlý (např. příkazy rozhodování, příkazy cyklu apod.). Dále je uveden příkaz, který slouží pro výpis zadaného textového řetězce do konzole (text musí být zapsán v uvozovkách). Každý příkaz musí být na svém konci ukončen středníkem. Příklad příkazu pro výpis daného textu do konzole: System.out.println(„Hello World!“);
3.2.4 Bloky Pomocí bloků seskupujeme části zdrojového kódu, které k sobě logicky patří. Blok je skupina žádného nebo více příkazů mezi složenými závorkami „{}“ a lze jej použít všude tam, kde je povolen jediný příkaz. Platí, že každá úvodní závorka bloku musí mít ekvivalent v podobě koncové závorky bloku. Pokud tato podmínka není splněna, dochází k chybě při překladu programu nebo k vyznačení syntaktické chyby v editoru vývojového prostředí.
3.2.5 Proměnné Proměnné lze definovat jako paměťová místa, ve kterých uchováváme informace. Proměnnou si lze představit jako místo v paměti. Každá proměnná v jazyce Java musí být určeného typu (celé číslo, reálné číslo, znak, reference na objekt atd.), ale k problematice datového typu se dostaneme v dalším výukovém bloku.
3.2.6 Třídy Třídy jsou základním stavebním kamenem jazyka Java. Každý program v jazyce Java se skládá alespoň z jedné třídy. Z hlediska definice třídy se třída nejčastěji uvádí jako šablona (nebo jako předpis) pro vytváření objektů. K této problema-
KST/IZAPR - Základy programování
blok 3, strana 5 (8)
Michael Bažant
tice se podrobněji dostaneme v dalších blocích, pro tuto chvíli je pro nás podstatné, že v každém programu v jazyce Java musí být uvedena alespoň jedna třída, definice třídy začíná klíčovým slovem class, za kterým následuje námi zvolený název třídy a složené závorky bloku. Příklad: class HelloWorld { }
3.2.7 Metody Metody představují v programu místa, kde se nachází skupina příkazů pro vykonání operací. K detailům týkajících se metod se dostaneme v dalších blocích, pro tuto chvíli je pro nás důležité vědět, že pokud chceme spustit program napsaný v jazyce Java, tak musí být uvnitř třídy metoda main(), jejíž příkazy zapsané bloku budou vykonány v momentě spuštění našeho programu. Příklad: public static void main(String[] args) { }
3.2.8 Identifikátory Pod pojmem identifikátory myslíme jednoznačný název pro označení proměnných, konstant, pojmenování různých prvků jazyka (tříd, metod, rozhraní) apod. Pro volbu vlastních identifikátorů lze použít syntaktický diagram uvedený již v bloku 1, který byl použit pro demonstraci použití syntaktických diagramů. Po jeho přečtení by bylo být jasné, jak může vypadat identifikátor použitý v jazyce Java. Dle diagramu je jasné, že prvním písmenem může být libovolný malý nebo velký znak anglické abecedy, znak „$“ nebo znak „_“. Jiné znaky nejsou na první pozici identifikátoru povolené. Na dalších pozicích již mohou být i číslice, případně další libovolné znaky ze sady unicode. Ze syntaktického diagramu je také zřejmé, že názvy musí být takové, aby nedošlo k jejich přerušení bílými znaky (mezerami, tabulátory apod.). Pro volbu identifikátorů je také doporučeno nepoužívat diakritické znaky, i když to nemusí způsobovat žádné problémy při překladu.
Obrázek 6: Syntaktický diagram pro volbu identifikátoru proměnné
Příklady platných identifikátorů:
KST/IZAPR - Základy programování
blok 3, strana 6 (8)
Michael Bažant
int _a; int $c; int ______2_w; int toto_je_dlouhy_nazev_pro_identifikator;
Příklady neplatných identifikátorů: int :b; int -d; int e#; int .f; int 7g;
3.2.9 Konvence jazyka Java Aby byly programy zapsané v tomto jazyku dobře čitelné nejen pro autora samotného, ale i pro spolupracovníky v týmu nebo jiné osoby (např. certifikační autoritu v případě certifikace softwaru apod.), byly stanoveny zásady pro formální úpravu, které se označují jako konvence jazyka Java. Konvence jazyka Java jsou upravené do přehledného dokumentu, jehož rozsah je nad rámec tohoto kurzu. V této podkapitole si tedy uvedeme velmi stručně nejzákladnější pravidla, která budeme dodržovat a bližší informace si může každý nastudovat v literatuře [1]. V úvodu této kapitoly jsme si řekli, že jazyk Java rozlišuje malá a velká písmena, a přesto že se konvence jazyka zdaleka neomezují pouze stanovení pravidel pro případy kdy volit jaké velikosti písmen, my se na tato pravidla nyní omezíme.: Třídy - při zápisu tříd budeme dodržovat zásadu, že první písmeno v názvu třídu zapisujeme velkým písmenem. Pokud se název skládá z více slov, na začátku každého slova zapisujeme velké písmeno. Pro volbu názvu tříd obvykle používáme podstatná jména. Příklad: Clovek, Ucet, SporiciUcet Metody – názvy metod začínají malým písmenem, pokud se název skládá z více slov, tak každé další slovo písmenem velkým. Pro název metody většinou volíme sloveso. Název metod musí být vždy doplněn kulatými závorkami, byť prázdnými. Příklad: main(), zalozUcet(), zrusUcet() Proměnné – platí stejné zásady jako u metod – první písmeno malé, ostatní počáteční písmene slov velká.
KST/IZAPR - Základy programování
blok 3, strana 7 (8)
Michael Bažant
Příklad: pocetStudentu, znamkaProgramovani Konstanty - všechna písmena velká, jednotlivá slova oddělena symbolem podtržení Příklad: UROK, MINIMALNI_VEK
Otázky na procvičení 1. 2. 3. 4. 5.
Co jsou to konvence jazyka? Z jakých základních prvků se skládá jazyk Java? Jaké typy komentářů jsou k dispozici v jazyce Java? K čemu slouží bloky v programu? Co jsou to proměnné?
Odkazy a další studijní prameny 1. Konvence jazyka Java www.oracle.com/technetwork/java/codeconventions-150003.pdf 2. Java Tutorial - http://docs.oracle.com/javase/tutorial/
KST/IZAPR - Základy programování
blok 3, strana 8 (8)
Michael Bažant