Tento týždeň začínate s prácou na projekte. Na prednáške ste sa oboznámili s rámcovou témou projektu. Zámer svojho projektu musíte prekonzultovať s vyučujúcim na cvičeniach. Máte možnosť to urobiť na tomto a ďalších dvoch cvičeníach. Aby vám vyučujúci mohol poradiť, musíte prísť s dostatočne rozpracovaným základom a premyslenými otázkami.
Do stanoveného termínu musíte odovzdať svoj zámer do AIS-u. Termín je však nastavený tak, že by ste hravo mali zvládnuť odovzdanie v týždennom predstihu, čím získate viac času na realizáciu projektu.
Dokumentácia Java SE je dostupná na webe. Obsahuje veľa užitočných veci vrátane tutoriálu, kompletných kníh o Jave a príkladov.
Ako už viete, Java prichádza s rozsiahlym API, t. j. rozhraním aplikačného programovania (niekedy označovným ako štandardné knižnice, ale sú to rámce). Aby ste toto rozhranie mohli využiť, potrebujete jeho dokumentáciu. Nájdete ju na spomínanej stránke. Priamy odkaz je: Platform, Standard Edition & Java Development Kit Version 17 API Specification.
Už ste používali metódu println(). You may use search, but you may also proceed by observing that this method is always called in the context of the System.out object. Find System class, and then proceed by inspecting its attribute named out, which is of the PrintStream class. Vyhľadajte dokumentáciu tejto metódy. Môžete posužiť vyhľadávanie, ale všimnite si, že táto metóda je vždy volaná v kontexte objektu System.out. Takže nájdite triedu System a pokračujte preskúmaním jej atribútu out, ktorý je triedy PrintStream. V nej už nájdete metódu println().
V úlohách budete pracovať s kódom hry s obrami a rytiermi z prednášky (použite finálnu verziu, ktorá je v adresári Game2).
int countEnergy(Energy[] e)ktorá bude schopná zrátať energiu obrov alebo rytierov poskytnutých ako parametre. Zavolajte túto metódu v metóde main() a vypíšte jej návratovú hodnotu. Tejto metóde musíte poskytnúť pole Energy[] ako parameter. Ak by ste jej chceli poskytnúť vybrané objekty, museli by ste ich obaliť do poľa Energy[] takto:
countEnergy(new Energy[]{o[47], k[2], o[99]});Ak však signatúru metódy uvediete takto:
int countEnergy(Energy... e)čo je zápis pre metódu s premenlivým počtom parametrov, objekty môžete poskytnúť priamo:
countEnergy(o[47], k[2], o[99]);Aj pri takejto signatúre stále môžete poskytnúť pole Energy[], lebo metódy s premenlivým počtom parametrov sú realizované pomocou polí.
package názov_balíka;Do každého súboru, ktorý využíva prvky tohto balíka musíte pridať klauzulu, ktorou tento balík sprístupníte:
import názov_balíka.*;Inak budete musieť používať plne kvalifikované názvy, ako napríklad:
characters.Ogre[] o = new characters.Ogre[100];Otvorte zdrojový kód a všimnite si jeho adresárovú štruktúru.
Pre preklad z príkazového riadku musia byť správne nastavené systémové premenné PATH a CLASSPATH. Na počítačoch v CPU by toto malo byť zabezpečené. V prípade, že narazite na problémy pri preklade alebo spúšťaní programu, urobte nasledujúce:
Zmeny platia len pre novootvorené príkazové riadky. Alternatívou k nastaveniu systémovej premennej CLASSPATH je zadávanie cesty k triedam priamo pri preklade prostredníctvom prepínača -classpath.
Po nastavení ciest, môžete vyskúšať preklad a spustenie programu HelloWorld.java. Uložte ho do pracovného adresára (vytvorte si vlastný podadresár v adresári, do ktorého môžete zapisovať, pravdepodobne C:\work).
Súbor so zdrojovým kódom môžete otvoriť v Eclipse (cez menu File alebo jednoduchým potiahnutím ikony súboru do okna Eclipse, teda bez vytvárania projektu) alebo v hocijakom editore textu (hoci aj v Notepade). Pre samotný preklad a spustenie programu to samozrejme nie je potrebné.
Samotný preklad spustíte z príkazového riadku, ku ktorému sa dostanete cez menu Start zadaním príkazu cmd. Z neho príkazom
javac HelloWorld.java
spustíte preklad programu. Program by sa mal preložiť úspešne, a prekladač by nemal hlásiť nič. Prekladom vznikne súbor HelloWorld.class. Ten sa dá spustiť príkazom
java HelloWorld
čím sa vypíše pozdrav a dnešný dátum.
(Ak sa nestihne, tak na ďalšom cvičení.)
Štruktúra adresárov, v ktorých sa nachádzajú zdrojové a výsledné súbory, musí zodpovedať štruktúre balíkov. Stiahnite si príklad programu s balíkmi a rozbaľte ho do pracovného adresára. Týmto by ste mali získať adresár C:\work\Project1) s dvomi zdrojovými súbory. Jeden z nich je Class1.java. Tento súbor obsahuje rovnomennú triedu, ktorá má metódu main(), t. j. dá sa spustiť.
Druhý súbor je ClassP.java. Tento súbor obsahuje tiež jednu, rovnomennú triedu. Na jeho začiatku je deklarované že patrí do balíka my.pack1 a preto musí byť umiestnený do adresára my\pack1. Class1.java importuje balík my.pack, ktorý pozostáva z jedinej triedy ClassP.
Preložme program javacom z príkazového riadku. Otvorte okno príkazového riadku a nastavte sa do adresára C:\work\Project1. Zadajte
javac Class1.java
Ak ste do systémovej premennej classpath nepridali aktuálny adresár, musíte použiť rovnomenný prepínač:
javac -classpath . Class1.java
Po preklade vznikne súbor Class1.class. Spustíte ho jednoducho príkazom:
java Class1
Aj pri spúšťaní programu platí, že ak ste do systémovej premennej classpath nepridali aktuálny adresár, musíte použiť rovnomenný prepínač.
Keďže viete že trieda Class1 potrebuje triedu ClassP, tušíte že aj súbor ClassP.java musel byť preložený. Presvedčte sa že javac tento preložený súbor umiestnil tam, kde našiel zdrojový, t. j. do adresára C:\work\Project1\my\pack1.
Väčšinou však budete chcieť aby preložené súbory boli oddelené od zdrojových súborov. Vytvorte preto adresár pre zdrojové súbory src a preložené súbory bin. Z adresára src spusťte preklad s uvedením cieľového adresára:
javac -d C:\work\Project1\bin Class1.java
V cieľovom adresári nájdete všetky preložené súbory aj so štruktúrou adresárov, ktorá zodpovedá hierarchii balíkov. Aby ste spustili program, musíte sa nastaviť do tohto adresára.
Aj keď preklad z príkazového riadku nie je vhodný pre vývoj rozsiahlejších programov – a teda ani pre vaše projekty – dobré je poznať ho. Odporúčané prostredie je Eclipse, ku ktorému ste dostali už na prvom cvičení krátky tutoriál (HTML/ ZIP). Na vlastných počítačoch môžete používať aj iné prostredia pre vývoj programov v Jave, ale projekt sa musí dať preložiť v prostredí Eclipse inštalovanom v CPU.