4. První šálek aneb Začínáme
Nejlepší způsob, jak se seznámit s programovacím jazykem, je vyzkoušet si ho.
Pro tento účel je vhodný volně dostupný balík vývojových programů Java
Development Kit (JDK), který obsahuje všechny potřebné vývojové prostředky
(překladač, interpret atd.).JDK je k dispozici pro velké množství operačních systémů. Některé distribuce
(např. pro Windows 95) je možno stáhnout z [WWW12], na další jsou zde
odkazy (např. pro Linux [WWW7]).
4.1. Instalace JDK
Vše, co je třeba udělat po stažení JDK z Internetu, spočívá pouze v rozbalení
souborů do zvoleného adresáře a nastavení cesty ke spustitelným souborům
(všechny jsou v podadresáři bin).Distribuce pro jednotlivé operační systémy se příliš neliší. Verze pro Windows
95 je bezproblémová, u starších verzí OS Linux je případně nutno provést
upgrade některých systémových knihoven. Kromě nejnovější verze JDK doporučujeme stáhnout si i originální dokumentaci
(samozřejmě v angličtině), zejména referenční popis Java Core API
[JDK97].
4.1.1. Verze JDK
V době vzniku sborníku byla aktuální verze JDK 1.1.3. Jednotlivé číslice ve
značení mají tento význam:
- první - major version, bude udávat větší změny,
- druhá - minor version, indikuje změny ve specifikaci jazyka a/nebo API,
- třetí - bugfix version - číslo verze s opravami chyb (mění se
často a v dokumentaci se někdy neuvádí).
Znamená to tedy, že např. JDK 1.1.1 a JDK 1.1.2 se liší pouze opravenými
chybami v novější verzi, kdežto JDK 1.0.2 a JDK 1.1.2 se liší i změnami
v jazyce a API. Jednotlivé verze by měly být zdola kompatibilní, ale není to
zaručeno.
Některé starší internetové prohlížeče (Netscape Navigator 4.01, Microsoft
Internet Explorer 3.02) podporovaly pouze verzi JDK 1.0. Applety využívající
vlastnosti JDK1.1 lze provozovat v Netscape Navigatoru 4.06 a vyšším
nebo Microsoft Internet Exploreru od verze 4.01. (1)
V JDK 1.1 došlo oproti k několika změnám v API a některé třídy a metody byly
označeny jako deprecated (viz příloha D.6.) a nemusí být
v dalších verzích JDK podporovány. Neměly by se nadále používat, není-li nutné
zachovat kompatibilitu se starší verzí.
4.2. Aplikace versus applet
Ještě než se pustíme do programování, se stručně podíváme na rozdíly mezi
aplikacemi a applety, což jsou dvě základní skupiny, na které
se dělí programy v Javě.
Uvedené rozdíly nepatrně stírá fakt, že lze napsat program, který se může
chovat jako aplikace i jako applet (viz příklad A.1.).
Je-li program spuštěn prohlížečem, pak pro něj samozřejmě platí omezení jako
na každý applet.
4.2.1. Příklad aplikace
Následující aplikace je jen o málo složitější než oblíbený program
"Hello World" a ohromí tím, že vypíše na standardní výstup svoje
parametry.
Priklad 4.1. |
public class Parametry { // (1)
public static void main(String[] args) { // (2)
if (args.length != 0) // (3)
for (int i=0; i<args.length; i++) // (4)
System.out.println("Parametr["+i+"] = "+args[i]); // (5)
else // (6)
System.out.println("Nebyly zadany zadne parametry."); // (7)
}
}
- Zápis programu:
Struktura aplikace musí vypadat tak, že hlavní část (která program zahajuje)
je uzavřena ve veřejné třídě (3) (public class), jejíž jméno (Parametry) je zároveň
jménem programu (1). V této třídě musí aplikace povinně obsahovat metodu (obdoba funkce)
main() (2). Metoda main() pak obsahuje jednotlivé příkazy. Složené
závorky uzavírají blok (podobně jako BEGIN - END v Pascalu). Dvojice zpětných lomítek uvozuje komentáře do konce řádky.
- Popis činnosti:
Po spuštění programu se zavolá metoda main() (2), které se předá pole
(args) parametrů příkazové řádky. Je-li délka pole args nenulová (3), vypíší se v cyklu for (4)
postupně všechny parametry. Výpis na standardní výstup provádí knihovní metoda
System.out.println() (5). Pokud nebyly zadány žádné parametry, skončí
program ve větvi else (6) výpisem na řádku (7). Všimněte si, že lze spojovat řetězce operátorem "+" - parametr
metody (5).
- Překlad:
Po uložení zdrojového textu do souboru s názvem Parametry.java se
aplikace přeloží z příkazové řádky:
javac Parametry.java
Výsledkem bude soubor Parametry.class obsahující
bytový kód.
- Spuštění aplikace:
Přeložený program se spustí z příkazové řádky interpretem:
java Parametry Prvni program v Jave!
Výsledkem bude výpis textu na standardním výstupu (obrazovce):
Parametr[0] = Prvni
Parametr[1] = program
Parametr[2] = v
Parametr[3] = Jave!
|
|
4.2.2. Příklad appletu
Následující applet načte a zobrazí obrázek ve formátu GIF nebo JPEG zadaný
jako parametr.
Priklad 4.2. |
import java.applet.Applet; // (i)
import java.awt.*; // (ii)
public class Obrazek extends Applet { // (1)
Image obrazek = null; // (2)
public void init() { // (3)
obrazek = getImage(getCodeBase(), // (4)
getParameter("obrazek")); // (5)
}
public void paint(Graphics g) { // (6)
if (obrazek != null)
g.drawImage(obrazek, 0, 0, this); // (7)
}
}
- Zápis programu:
Podobně jako u aplikace (viz příklad 4.2.1.) je hlavní část programu
uzavřena ve veřejné třídě (Obrazek) - část extends
Applet v hlavičce (1) značí, že se jedná o applet. (4) Applet má odlišnou strukturu než aplikace (5) - obsahuje metody
init() (3), kde se provádí inicializace, a paint() (6), která se
volá při překreslování. (6) Applet dále obsahuje deklaraci členské proměnné obrazek (2). Řádky (i, ii) pouze informují překladač, aby provedl import
vyjmenovaných tříd - to umožňuje používat zkrácená jména, např.
java.applet.Applet (i) lze v programu psát jako Applet (1).
- Popis činnosti:
Po spuštění applet zjistí jméno souboru obrázku, který má načíst. Jméno se
zadává jako parametr v HTML souboru (7) (viz dále) - k načtení parametru
slouží metoda getParameter() (5). Následně se obrázek načte metodou getImage() a uloží do proměnné obrazek (4). Metoda paint() (6) při překreslování appletu obrázek zobrazí metodou
drawImage() (7).
- Překlad:
Po uložení zdrojového textu do souboru Obrazek.java se aplikace
přeloží z příkazové řádky:
javac Obrazek.java
Výsledkem bude soubor Obrazek.class obsahující
bytový kód.
- Spuštění appletu:
Před spuštěním je nutné vytvořit HTML dokument a umístit do něj odkaz
na applet. Pro tento příklad lze použít následující výpis, který uložte
do souboru Obrazek.html .
<APPLET
CODE = Obrazek.class
HEIGHT = 100
WIDTH = 100
>
<PARAM
NAME = obrazek
VALUE = jménoSouboru
>
Váš prohlížeč nespouští Java applety.
</APPLET>
HTML: První část udává odkaz na kód appletu, výšku (HEIGHT)
a šířku WIDTH výřezu, kam bude applet zobrazovat. Appletu se předá
hodnota VALUE parametru obrazek - jménoSouboru je třeba
nahradit konkrétním jménem souboru s obrázkem ve formátu GIF nebo JPEG
(obrázek musí být umístěn ve stejném adresáři jako přeložený applet).
Následně je applet možné spustit:
|
|
|