Úvod do programovania v jazyku Java
V súčasnosti existuje veľké množstvo programov, ktoré riešia veľmi rozmanité úlohy, pomaly sa môže zdať, že na všetko už bol naprogramovaný nejaký program. Napriek tomu často je potrebné, aby sme vytvorili vlastný program: autor môže totiž naprogramovať zoptimalizovaný algoritmus (taký postup na riešenie konkrétnej úlohy, aby bol vykonaný čo najrýchlejšie, s najmenšími výpočtovými nárokmi), čo je niekedy - hlavne pri náročných vedeckých výpočtoch - veľmi dôležité. Samozrejme nie je vhodné programovať všetko úplne nanovo, je výhodné, pokiaľ môžeme čo najviac využiť, čo už iní naprogramovali (inak by pokrok v programovaní bol nulový). Podobne, ako pri skladaní stavebnice niekedy potrebujeme väčšie, inokedy zase menšie diely, aj riešenie našej úlohy rozdelíme na časti, ktoré je možné realizovať postupne (niektoré časti postupov prevezmeme od iných programátorov, niektoré vytvoríme sami, dôležité je však, že sme schopní program korektne zostaviť ideálne s čo najmenšou námahou). Pri programovaní vždy volíme kompromis medzi možnosťou prebrať už naprogramované (s tou nevýhodou, že možno berieme aj časti, ktoré potrebovať nebudeme) a pracným programovaním vlastného algoritmu.
Programovací jazyk Java
Na našich prednáškach a cvičeniach sa budeme venovať programovaniu v programovacom jazyku Java, ktorý vyvíja spoločnosť SUN Microsystems Inc pod licenciou GNU/GPL - Free and Open Source Java. Jeho hlavnými výhodami sú:
- sú podporované takmer všetky operačné systémy
- je voľne šíriteľný - zadarmo
- je objektovo orientovaný (vysvetlíme neskôr), čo umožňuje veľkú znovupoužiteľnosť už naprogramovaných algoritmov
- existuje preň veľké množstvo príkladov, knižníc a má rozsiahlu podporu
- je veľmi dobre dokumentovaný
Pre nás bude dôležité, že sa v tomto programovacom jazyku naučíme ako základné princípy programovania tak aj rýchlo a relatívne jednoducho naprogramovať veľmi pekné a užitočné veci.
Na druhej strane, vždy je to niečo za niečo, a ako sme už spomenuli, za jednoduchosť sa platí daň. V prípade Javy to, že je podporovaná takmer všetkými operačnými systémami (jej prenositeľnosť) je možná vďaka tomu, že v operačnom systéme spustíme tzv. virtuálny stroj Javy, ktorý prekladá náš program operačnému systému. Programátori spoločnosti Sun nám tým, že naprogramovali virtuálny stroj Javy pre každú platformu umožnili programovať jednotne pod ľubovoľným operačným systémom. Áno, znamená to určitú stratu efektivity, pretože Java musí byť interpretovaná z bytecode. Existujú však spôsoby, ako tieto straty zredukovať na minimum, takže nevýhody sú bohato vyvážené možnosťami, ktoré jazyk ponúka.
Postup, ako sa dostať až k vykonateľnému programu v Jave a vykonať ho:
- písanie programu (zdrojového kódu) v jazyku Java (súbory *.java)
- preloženie resp. kompilovanie - vytvorenie binárneho (*.class) súboru kompilátorom javy javac
- spustenie virtuálneho stroja javy (sada počítačových programov spoločne integrovaných do programu java) a vykonanie spustiteľného .class súboru
Zdrojový kód
Zdrojový kód je obyčajný textový súbor, v ktorom je zapísaný program v jazyku Java. Je editovateľný textovým editorom napríklad SciTe, typicky je pomenovaný meno_triedy.java podľa triedy (class), ktorá sa v ňom nachádza. Pre editovanie používajte výhradne editory určené špeciálne na editovanie zdrojových kódov programov, textové editory pre tvorbu dokumentov do textu vkladajú dodatočne rôzne formátovacie znaky a výsledný text nie je preto možné skompilovať. Zdrojový kód je zrozumiteľný programátorovi - ten mu musí rozumieť, aby mohol do neho zapísať požadovaný algoritmus. Význam tried - slovíčko class, vysvetlíme neskôr, zatiaľ ich berme ako niečo "povinné".
Najjednoduchší zdrojový kód, v našom prípade je uložený v súbore nic.java:
class nic {
}
Vysvetlenie k tomuto zdrojovému kódu
- "{" otvára obsah bloku, "}" zatvára, zatiaľ je blok a teda aj trieda prázdna
- kompilovanie = preklad do bytecode (človeku nezrozumiteľný), vytvorenie súboru .class
- z príkazového riadku javac nic.java vytvorí nic.class
- ak ste zdrojový kód napísali v SciTe, použite menu Tools -> Compile alebo stlačením klávesy F7
Úloha
Vyskúšajte: Čo sa stane, ak súbor prva.java bude obsahovať viac tried?
class prva {
}
class druha {
}
class tretia {
}
Po spustení javac prva.java dostaneme tri súbory prva.class, druha.class, tretia.class, každý bude obsahovať jednu triedu. Tieto súbory by sme dostali aj keby sa súbor .java volal inak, nie prva.java, kompilátor sa riadi menom, ktoré napíšeme za class.
- zásadou však bude v jednom súbore mať iba jednu triedu a pomenovať ho podľa nej
- pozor, často sa stane, že omylom pomenujete súbor inak, ako triedu v ňom a trápite sa, prečo chybové hlásenia nedávajú zmysel... (súbor .class sa volá inak, ako súbor .java), veľmi častou chybou je zámena malých/veľkých písmen v menách, na ktoré je kompilátor citlivý
Spustenie aplikácie v Java Virtual Machine
Po kompilácii zdrojového kódu do bytecode, ktorý sa uloží do súboru meno_triedy.class je tento možné spustiť, pokiaľ v ňom je časť popisujúca, čo sa má vykonať. Najjednoduchšia spustiteľná trieda Hello.java:
class Hello {
public static void main(String[] args) {
System.out.println("Hey, it really works!");
}
}
Ak ste program napísali v editore SciTe, môžete ho skompilovať a spustiť priamo z prostredia editora
- F7 spustí kompilátor javac Hello.java
- F5 spustí virtuálny stroj java Hello, prípadne v menu Tools -> Go
Program môžeme skompilovať a spustiť v konzole operačného systému
- z príkazového riadku zadáme javac Hello.java
- z príkazového riadku spustíme virtuálny stroj java Hello
V prípade, že používate na vývoj aplikácií iné prostredie (Eclipse, Netbeans), riadte sa pri návodom k danému prostrediu. Skompilovaný súbor Hello.class je pronositeľný na všetky platformy, pre ktoré je dostupný virtuálny stroj, program môžete spustiť bez ďaľšej kompilácie.