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:
|
|
|