5. Program v Jav∞5.1. Struktura programuZdrojov² text programu se sklßdß z jednΘ nebo vφce t°φd (viz 11.2.) a rozhranφ (viz 11.6.), globßlnφ prom∞nnΘ v Jav∞ nejsou.Ka╛dß ve°ejnß t°φda (viz 11.2.1.) musφ b²t ulo╛ena v samostatnΘm zdrojovΘm souboru, jeho╛ nßzev je shodn² s nßzvem tΘto t°φdy a obsahuje p°φponu .java. ObdobnΘ pravidlo platφ i pro ve°ejnß rozhranφ. Na zaΦßtku ka╛dΘho souboru m∙╛e b²t je╣t∞ uvedena deklarace balφku (viz 12.2.) a/nebo import t°φd (viz 12.1.). Formßt zdrojovΘho souboru obecn∞ vypadß takto: [ import argument1; ] [ import argument2; ] . . . [ import argumentN; ]
[ package jmΘnoBalφku ; ]
[ interface Rozhranφ1 { /* t∞lo rozhranφ 1 */ } ] [ interface Rozhranφ2 { /* t∞lo rozhranφ 2 */ } ] . . . [ interface RozhranφN { /* t∞lo rozhranφ N */ } ]
[ class T°φda1 { /* t∞lo t°φdy 1 */ } ] [ class T°φda2 { /* t∞lo t°φdy 2 */ } ] . . . [ class T°φdaN { /* t∞lo t°φdy N */ } ]
[ public class Ve°ejnßT°φda { /* t∞lo ve°ejnΘ t°φdy */ } // nebo: [ public interface Ve°ejnΘRozhranφ { /* t∞lo ve°ejnΘho rozhranφ */ } ]
5.2. P°ekladV╣echny zdrojovΘ soubory .java musφ b²t ulo╛eny v jednom adresß°i, odkud bude proveden p°eklad. V²jimku tvo°φ t°φdy a rozhranφ umφst∞nΘ v balφcφch (viz kap. 12.), kterΘ jsou ve zvlß╣tnφch adresß°φch. Cestu k balφk∙m udßvß systΘmovß prom∞nnß CLASSPATH (viz p°φloha D.).P°ekladaΦ javac "vyrobφ" z ka╛dΘho souboru .java jeden nebo n∞kolik soubor∙ pojmenovan²ch podle jednotliv²ch t°φd a rozhranφ (v n∞m obsa╛en²ch) s p°φponou .class. Ka╛d² p°elo╛en² soubor obsahuje jednu t°φdu nebo rozhranφ v bytovΘm k≤du.
P°ekladaΦ javac p°i p°ekladu jednoho zdrojovΘho souboru p°elo╛φ i v╣echny, na kter²ch je tento soubor zßvisl² a ve kterΘ je╣t∞ nebyly p°elo╛eny. Podrobnosti viz D.2.. 5.3. B∞h programuPo spu╣t∞nφ programu se nejprve se nahraje specifikovanß t°φda (1) do pam∞ti a prob∞hne verifikace jejφho bytovΘho k≤du (provede se nap°φklad kontrola skok∙ a identifikaΦnφch hlaviΦek metod).U aplikace potΘ JVM spustφ metodu main(), kterΘ p°edß pole argument∙ z p°φkazovΘ °ßdky. B∞h appletu °φdφ prohlφ╛eΦ, viz 17.1.. T°φdy, kterΘ program pou╛φvß, jsou nahrßvßny dynamicky podle pot°eby, nap°φklad a╛ v okam╛iku vytvß°enφ prvnφ instance (viz 11.1.1.); i u nich se provßdφ verifikace.
Za b∞hu programu ka╛dou pou╛φvanou t°φdu reprezentujφ instance t°φdy java.lang.Class, kterß programßtorovi umo╛≥uje zji╣╗ovßnφ informacφ o t°φd∞ pomocφ metod getSuperClass(), isInterface() a dal╣φch. Od JDK 1.1 jsou dßle mo╛nosti introspekce roz╣φ°eny dφky t°φdßm a rozhranφm z balφku java.lang.reflect.
|